View Javadoc

1   /*
2    * Copyright (c) 2003-2008 by Cosylab d. d.
3    *
4    * This file is part of CosyBeans-Common.
5    *
6    * CosyBeans-Common is free software: you can redistribute it and/or modify
7    * it under the terms of the GNU General Public License as published by
8    * the Free Software Foundation, either version 3 of the License, or
9    * (at your option) any later version.
10   *
11   * CosyBeans-Common is distributed in the hope that it will be useful,
12   * but WITHOUT ANY WARRANTY; without even the implied warranty of
13   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14   * GNU General Public License for more details.
15   *
16   * You should have received a copy of the GNU General Public License
17   * along with CosyBeans-Common.  If not, see <http://www.gnu.org/licenses/>.
18   */
19  
20  package com.cosylab.gui.components.wheelswitch;
21  
22  import java.awt.Component;
23  import java.awt.Container;
24  import java.awt.Dimension;
25  import java.awt.LayoutManager;
26  
27  /**
28   * Implementation of <code>java.awt.LayoutManager</code> to be used for
29   * <code>UpDownButton</code> layout.
30   * 
31   * @author <a href="mailto:jernej.kamenik@cosylab.com">Jernej Kamenik</a>
32   * @version $id$
33   */
34  public class UpDownLayout implements LayoutManager {
35  	
36  	/**
37  	 * @see LayoutManager#addLayoutComponent(String, Component)
38  	 */
39  	public void addLayoutComponent(String name, Component comp) {
40  	}
41  
42  	/**
43  	 * @see LayoutManager#removeLayoutComponent(Component)
44  	 */
45  	public void removeLayoutComponent(Component comp) {}
46  
47  	/**
48  	 * @see LayoutManager#preferredLayoutSize(Container)
49  	 */
50  	public Dimension preferredLayoutSize(Container parent) {
51  		return parent.getPreferredSize();
52  	}
53  
54  	/**
55  	 * @see LayoutManager#minimumLayoutSize(Container)
56  	 */
57  	public Dimension minimumLayoutSize(Container parent) {
58  		return parent.getMinimumSize();
59  	}
60  
61  	/**
62  	 * @see LayoutManager#layoutContainer(Container)
63  	 */
64  	public void layoutContainer(Container parent) {
65  		UpDownButton upDownButton = (UpDownButton)parent;;
66  		if (upDownButton==null || upDownButton.getComponentCount()!=2) return;		
67  		int height = upDownButton.getHeight();
68  		int width = upDownButton.getWidth();
69  		
70  		upDownButton.getComponent(0).setBounds(0,0,width,Math.round(height/2f)+1);			
71  		upDownButton.getComponent(1).setBounds(0,Math.round(height/2f)-1,width,height/2+1);			
72  		upDownButton.revalidate();
73  	}	
74  }