1   /*
2    * Copyright (c) 2006 Stiftung Deutsches Elektronen-Synchroton,
3    * Member of the Helmholtz Association, (DESY), HAMBURG, GERMANY.
4    *
5    * THIS SOFTWARE IS PROVIDED UNDER THIS LICENSE ON AN "../AS IS" BASIS.
6    * WITHOUT WARRANTY OF ANY KIND, EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED
7    * TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR PARTICULAR PURPOSE AND
8    * NON-INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
9    * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
10   * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
11   * THE USE OR OTHER DEALINGS IN THE SOFTWARE. SHOULD THE SOFTWARE PROVE DEFECTIVE
12   * IN ANY RESPECT, THE USER ASSUMES THE COST OF ANY NECESSARY SERVICING, REPAIR OR
13   * CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE.
14   * NO USE OF ANY SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
15   * DESY HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
16   * OR MODIFICATIONS.
17   * THE FULL LICENSE SPECIFYING FOR THE SOFTWARE THE REDISTRIBUTION, MODIFICATION,
18   * USAGE AND OTHER RIGHTS AND OBLIGATIONS IS INCLUDED WITH THE DISTRIBUTION OF THIS
19   * PROJECT IN THE FILE LICENSE.HTML. IF THE LICENSE IS NOT INCLUDED YOU MAY FIND A COPY
20   * AT HTTP://WWW.DESY.DE/LEGAL/LICENSE.HTM
21   */
22  
23  package de.desy.acop.demo;
24  
25  import java.awt.Color;
26  import java.awt.Component;
27  import java.awt.Graphics;
28  import java.awt.event.MouseAdapter;
29  import java.awt.event.MouseEvent;
30  
31  import javax.swing.Icon;
32  import javax.swing.JFrame;
33  
34  import com.cosylab.gui.components.util.IconHelper;
35  
36  import de.desy.acop.displayers.AcopIcon;
37  
38  /**
39   * @author Igor Kriznar (igor.kriznarATcosylab.com)
40   *
41   */
42  public class AcopIconDemo extends JFrame {
43  
44  	private AcopIcon acopIcon = null;
45  
46  	class SimpleIcon implements Icon {
47  		Color color;
48  		SimpleIcon(Color c) {
49  			color=c;
50  		}
51  		/* (non-Javadoc)
52  		 * @see javax.swing.Icon#getIconHeight()
53  		 */
54  		public int getIconHeight() {
55  			return 32;
56  		}
57  		/* (non-Javadoc)
58  		 * @see javax.swing.Icon#getIconWidth()
59  		 */
60  		public int getIconWidth() {
61  			return 32;
62  		}
63  		/* (non-Javadoc)
64  		 * @see javax.swing.Icon#paintIcon(java.awt.Component, java.awt.Graphics, int, int)
65  		 */
66  		public void paintIcon(Component c, Graphics g, int x, int y) {
67  			int w= Math.min(g.getClipBounds().height,g.getClipBounds().width);
68  			g.setColor(color);
69  			g.fillRoundRect((g.getClipBounds().width-w)/2+5,(g.getClipBounds().height-w)/2+5,w-10,w-10,w/5,w/5);
70  		}
71  	}
72  	
73  
74  	/**
75  	 * This method initializes acopIcon1	
76  	 * 	
77  	 * @return de.desy.acop.displayers.AcopIcon	
78  	 */
79  	private AcopIcon getAcopIcon1() {
80  		if (acopIcon == null) {
81  			try {
82  				acopIcon = new AcopIcon();
83  				acopIcon.setDefaultIcon(IconHelper.createIcon("teilchenspuren_1_ger.jpg"));
84  				acopIcon.addIcon(0,new SimpleIcon(Color.RED));
85  				acopIcon.addIcon(1,new SimpleIcon(Color.GREEN));
86  				acopIcon.addIcon(2,new SimpleIcon(Color.BLUE));
87  				
88  				acopIcon.addMouseListener(new MouseAdapter() {
89  				
90  					@Override
91  					public void mouseClicked(MouseEvent e) {
92  						acopIcon.setValue((acopIcon.getValue()+1)%4);
93  					}
94  				
95  				});
96  			} catch (java.lang.Throwable e) {
97  				e.printStackTrace();
98  			}
99  		}
100 		return acopIcon;
101 	}
102 
103 	/**
104 	 * @param args
105 	 */
106 	public static void main(String[] args) {
107 		AcopIconDemo demo= new AcopIconDemo();
108 		demo.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
109 		demo.pack();
110 		demo.setVisible(true);
111 	}
112 
113 	/**
114 	 * This is the default constructor
115 	 */
116 	public AcopIconDemo() {
117 		super();
118 		initialize();
119 	}
120 
121 	/**
122 	 * This method initializes this
123 	 * 
124 	 * @return void
125 	 */
126 	private void initialize() {
127 		this.setSize(319, 317);
128 		this.setContentPane(getAcopIcon1());
129 		this.setTitle("JFrame");
130 	}
131 
132 }  //  @jve:decl-index=0:visual-constraint="10,10"