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