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"