001 /*
002 * $Id: DisplayState.java,v 1.1 2012/01/04 20:39:39 tommyj Exp $
003 *
004 * This file is part of McIDAS-V
005 *
006 * Copyright 2007-2012
007 * Space Science and Engineering Center (SSEC)
008 * University of Wisconsin - Madison
009 * 1225 W. Dayton Street, Madison, WI 53706, USA
010 * https://www.ssec.wisc.edu/mcidas
011 *
012 * All Rights Reserved
013 *
014 * McIDAS-V is built on Unidata's IDV and SSEC's VisAD libraries, and
015 * some McIDAS-V source code is based on IDV and VisAD source code.
016 *
017 * McIDAS-V is free software; you can redistribute it and/or modify
018 * it under the terms of the GNU Lesser Public License as published by
019 * the Free Software Foundation; either version 3 of the License, or
020 * (at your option) any later version.
021 *
022 * McIDAS-V is distributed in the hope that it will be useful,
023 * but WITHOUT ANY WARRANTY; without even the implied warranty of
024 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
025 * GNU Lesser Public License for more details.
026 *
027 * You should have received a copy of the GNU Lesser Public License
028 * along with this program. If not, see http://www.gnu.org/licenses.
029 */
030
031 package edu.wisc.ssec.mcidasv.control.cyclone;
032
033 import java.awt.Color;
034 import java.awt.event.ActionEvent;
035 import java.awt.event.ActionListener;
036
037 import javax.swing.BorderFactory;
038 import javax.swing.JCheckBox;
039
040 import ucar.unidata.util.LogUtil;
041
042 /**
043 *
044 * @author Unidata Development Team
045 * @version $Revision: 1.1 $
046 */
047
048 public class DisplayState {
049
050 /** the way display state */
051 private WayDisplayState wayDisplayState;
052
053 /** for gui */
054 private JCheckBox cbx;
055
056 /** is this visible */
057 private boolean visible;
058
059 /** the name */
060 private String name;
061
062 /**
063 * ctor
064 */
065 public DisplayState() {
066 }
067
068 /**
069 * ctor
070 *
071 *
072 * @param wayDisplayState
073 * the way display state
074 * @param name
075 * the name
076 * @param visible
077 * is this visible
078 */
079 public DisplayState(WayDisplayState wayDisplayState, String name,
080 boolean visible) {
081 this.wayDisplayState = wayDisplayState;
082 this.name = name;
083 this.visible = visible;
084 }
085
086 /**
087 * set background color
088 *
089 * @param c
090 * color
091 */
092 protected void setBackground(Color c) {
093 getCheckBox().setBackground(c);
094 }
095
096 /**
097 * make the checkbox
098 *
099 *
100 * @return the checkbox
101 */
102 public JCheckBox getCheckBox() {
103 if (cbx == null) {
104 cbx = new JCheckBox("", getVisible());
105 cbx.setBorder(BorderFactory.createEmptyBorder(2, 2, 2, 2));
106 cbx.setToolTipText(name);
107 cbx.addActionListener(new ActionListener() {
108 public void actionPerformed(ActionEvent ae) {
109 try {
110 setVisible(cbx.isSelected());
111 wayDisplayState.getStormDisplayState()
112 .displayStateChanged(DisplayState.this);
113 } catch (Exception exc) {
114 LogUtil.logException("Toggling way visible", exc);
115 }
116 }
117 });
118 }
119 return cbx;
120 }
121
122 /**
123 * Set the Visible property.
124 *
125 * @param value
126 * The new value for Visible
127 */
128 public void setVisible(boolean value) {
129 visible = value;
130 }
131
132 /**
133 * Get the Visible property.
134 *
135 * @return The Visible
136 */
137 public boolean getVisible() {
138 return visible;
139 }
140
141 /**
142 * Set the Name property.
143 *
144 * @param value
145 * The new value for Name
146 */
147 public void setName(String value) {
148 name = value;
149 }
150
151 /**
152 * Get the Name property.
153 *
154 * @return The Name
155 */
156 public String getName() {
157 return name;
158 }
159
160 /**
161 * Set the WayDisplayState property.
162 *
163 * @param value
164 * The new value for WayDisplayState
165 */
166 public void setWayDisplayState(WayDisplayState value) {
167 wayDisplayState = value;
168 }
169
170 /**
171 * Get the WayDisplayState property.
172 *
173 * @return The WayDisplayState
174 */
175 public WayDisplayState getWayDisplayState() {
176 return wayDisplayState;
177 }
178
179 }