]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.scenegraph.swing/src/org/simantics/scenegraph/swing/CheckBoxNode.java
Fixed all line endings of the repository
[simantics/platform.git] / bundles / org.simantics.scenegraph.swing / src / org / simantics / scenegraph / swing / CheckBoxNode.java
1 /*******************************************************************************
2  * Copyright (c) 2007, 2010 Association for Decentralized Information Management
3  * in Industry THTH ry.
4  * All rights reserved. This program and the accompanying materials
5  * are made available under the terms of the Eclipse Public License v1.0
6  * which accompanies this distribution, and is available at
7  * http://www.eclipse.org/legal/epl-v10.html
8  *
9  * Contributors:
10  *     VTT Technical Research Centre of Finland - initial API and implementation
11  *******************************************************************************/
12 package org.simantics.scenegraph.swing;
13
14 import java.awt.Color;
15 import java.awt.Font;
16 import java.awt.Graphics2D;
17 import java.awt.event.ActionEvent;
18 import java.awt.event.ActionListener;
19 import java.util.HashSet;
20 import java.util.Set;
21
22 import javax.swing.JCheckBox;
23
24 public class CheckBoxNode extends ComponentNode<JCheckBox> implements ActionListener {
25
26     private static final long serialVersionUID = 3161843367263793336L;
27
28     protected String text;
29     protected Font font = null;
30     protected Color color = null;
31
32     protected transient Set<ActionListener> actionListeners = new HashSet<ActionListener>();
33
34     @Override
35     public void render(Graphics2D g2d) {
36         if(component != null && component.getText() != null && component.getText().equals(text) == false)
37                 component.setText(text);
38         super.render(g2d);
39     }
40     
41     @SyncField("text")
42     public void setText(String text) {
43         this.text = text;
44     }
45     
46     @PropertySetter("Font")
47     @SyncField("font")
48     public void setFont(Font font) {
49         this.font = font;
50         if (component != null) {
51             setComponentFont(font);
52         }
53     }
54
55     @PropertySetter("Color")
56     @SyncField("color")
57     public void setColor(Color color) {
58         this.color = color;
59         if (component != null) {
60             component.setForeground(color);
61         }
62     }
63     
64     public Font getFont() {
65         return font;
66     }
67
68     @ServerSide
69         @Override
70         public void actionPerformed(ActionEvent e) {
71                 for(ActionListener listener : actionListeners)
72                         listener.actionPerformed(e);
73         }
74         
75     public void addActionListener(ActionListener l) {
76         actionListeners.add(l);
77     }
78     
79     public void removeActionListener(ActionListener l) {
80         actionListeners.remove(l);
81     }
82
83     @Override
84     public void init() {
85         component = new JCheckBox();
86                 component.addActionListener(this);
87         super.init();
88     }
89 }