com.woven_media.app.colorsafe
Class Controller

java.lang.Object
  extended by com.woven_media.app.colorsafe.Controller
All Implemented Interfaces:
IPalette, java.util.EventListener, javax.swing.event.ChangeListener

public class Controller
extends java.lang.Object
implements javax.swing.event.ChangeListener, IPalette

Controller class handles UI and event-handling.

Since:
1.0
Author:
Brent Allen Parrish

Field Summary
static java.lang.String DEF_RES_PATH
           
 
Fields inherited from interface com.woven_media.util.color.IPalette
BG_VAL, GRAYSCALE_NUM_COLORS, GRAYSCALE_PALETTE, GRAYSCALE_TITLE, HEX_VAL, NAMED_COLORS_PALETTE, NAMED_COLORS_TITLE, NAMED_NUM_COLORS, NETSCAPE_NUM_COLORS, NETSCAPE_PALETTE, NETSCAPE_TITLE, RGB_VAL, WIN_GRAYS_NUM_COLORS, WIN_NUM_COLORS, WINDOWS_GRAYS_PALETTE, WINDOWS_GRAYS_TITLE, WINDOWS_PALETTE, WINDOWS_TITLE, X11_NUM_COLORS, X11_PALETTE, X11_TITLE
 
Method Summary
 void applyAction()
          Applies all changes made within the RGB and Hex text fields.
 void colorPicker(java.lang.String title, int selection)
          Opens a javax.swing.JColorChooser dialog.
protected  void finalValidation(java.awt.event.FocusEvent fe, javax.swing.JTextField txt)
          Completes validation for text fields.
static java.awt.Color getBgColor()
          Returns this app's background color.
 java.awt.Color getChooserColor(int selection)
          Returns the current color selection from the javax.swing.JColorChooser.
 java.awt.Color getCurrentSafeColor()
          Returns the swatch panel's current selected safe color.
 java.awt.Color getCurrentSelectedColor()
          Returns the swatch panel's current selected color.
static javax.swing.ImageIcon getImageIcon()
          Returns this instance's icon image.
 java.awt.Insets getInsets()
          Returns the insets for GridBag padding of components in this window.
static java.util.Locale getLocale()
          Returns the Controller.locale member.
static java.util.ResourceBundle getResources()
          Reads in the java.util.ResourceBundle strings_xx.properties file used by this GUI instance.
 java.awt.Color getRGBColor()
          Reads the values from the RGB text fields and converts and returns java.awt.Color object via the ColorUtil class.
 java.awt.Color getSafeColor(int[] rgbArray)
          Returns the nearest safe color based on the selected color.
 java.net.URL getURL()
          Returns the Controller.url member.
static void getURLResource(java.lang.String res)
          Sets the Controller.url member.
 boolean isSafeColor()
           
static void loadIcon(javax.swing.JFrame f)
          Loads image icon from default resources.
 void msgDialog(java.awt.Component parent, java.lang.Object msg, java.lang.String title, int msgType)
          Handles error, warning and information messages by opening a dialog.
 void openColorPalette(java.lang.String title, int palette)
          Opens the palette windows.
 void resetAction()
          Resets this application back to its default values.
 void restart()
          Calls Controller.start.
static void setBgColor(java.awt.Color c)
          Sets this app's background color.
 void setCurrentColor(java.awt.Color c)
          Sets the current color selection.
 void setHexText(java.lang.String str)
          Sets the text value of the Hex text field.
static void setLocale(java.util.Locale loc)
          Sets Controller.locale.
 void setRGBcontrols()
          Sets RGB textfields and sliders to the correct values based on the value of the Hex textfield.
 void setSelection(java.awt.event.FocusEvent fe)
          Sets selection for text entered into javax.swing.JTextFields.
 void showAboutBox()
          Displays the About object in a bordless window - called from Help menu.
 void showColor(java.awt.Color c)
          Displays selected color for this instance.
 void showHexString()
          Sets the hexadecimal value in the javax.swing.JTextField.
 void showSafeColor()
          Displays the current web-safe color information.
 void stateChanged(javax.swing.event.ChangeEvent e)
          Receives stateChanged events from this instance's javax.swing.JSlider components.
 void testResetState()
          Passes current RGB field values to the ColorUtil class to parse the string values for RGB int values.
 void textFieldGainedFocus(java.awt.event.FocusEvent fe, javax.swing.JTextField txt)
          Handle actions when a javax.swing.JtextField gains focus.
 void textFieldLostFocus(java.awt.event.FocusEvent fe, javax.swing.JTextField txt)
          Handles actions when a javax.swing.JtextField loses focus.
protected  void validateTextField(java.awt.event.KeyEvent e)
          Validates the textfields and blocks the entry of RGB and hexadecimal values that are out of range.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEF_RES_PATH

public static final java.lang.String DEF_RES_PATH
See Also:
Constant Field Values
Method Detail

restart

public void restart()
Calls Controller.start. The restart method reloads this app instance without destroying the enclosing parent frame. Convenience method only. Used by the ColorSafeMenubar class to handle the language toggle event at runtime.

Since:
1.0

setBgColor

public static void setBgColor(java.awt.Color c)
Sets this app's background color.

Parameters:
c - java.awt.Color object
Since:
1.0

getBgColor

public static java.awt.Color getBgColor()
Returns this app's background color.

Returns:
java.awt.Color object of the background color for this instance.
Since:
1.0

getImageIcon

public static javax.swing.ImageIcon getImageIcon()
Returns this instance's icon image.

Returns:
iconImg javax.swing.IconImage

getCurrentSelectedColor

public java.awt.Color getCurrentSelectedColor()
Returns the swatch panel's current selected color.

Returns:
java.awt.Color object of this swatch panel's background color if colorSwatch panel is not null, otherwise returns null.
Since:
1.0

getCurrentSafeColor

public java.awt.Color getCurrentSafeColor()
Returns the swatch panel's current selected safe color.

Returns:
java.awt.Color object of this safe swatch panel's background color if colorSafeSwatch panel is not null, otherwise returns null.
Since:
1.0

setLocale

public static void setLocale(java.util.Locale loc)
Sets Controller.locale. The locale setting is primarily used for multiple language support.

Parameters:
loc - a java.util.Locale object primarily used for setting language options.
Since:
1.0
See Also:
Locale

getLocale

public static java.util.Locale getLocale()
Returns the Controller.locale member.

Returns:
java.util.Locale object
Since:
1.0
See Also:
Locale

getResources

public static java.util.ResourceBundle getResources()
Reads in the java.util.ResourceBundle strings_xx.properties file used by this GUI instance.

Returns:
java.util.ResourceBundle used for localization support.
Since:
1.0
See Also:
ResourceBundle

getURLResource

public static void getURLResource(java.lang.String res)
Sets the Controller.url member. Locates relative path resources.

Parameters:
res - java.lang.String resource.
Since:
1.0
See Also:
URLClassLoader

getURL

public java.net.URL getURL()
Returns the Controller.url member.

Returns:
java.net.URL object.
Since:
1.0
See Also:
URL

loadIcon

public static void loadIcon(javax.swing.JFrame f)
Loads image icon from default resources.

Parameters:
f - parent javax.swing.JFrame reference.
Since:
1.0
See Also:
JFrame

isSafeColor

public boolean isSafeColor()

stateChanged

public void stateChanged(javax.swing.event.ChangeEvent e)
Receives stateChanged events from this instance's javax.swing.JSlider components. Values of the text fields are adjusted according to current color selection.

Specified by:
stateChanged in interface javax.swing.event.ChangeListener
Parameters:
e - java.awt.event.ChangeEvent
Since:
1.0
See Also:
ChangeListener, ChangeEvent

setSelection

public void setSelection(java.awt.event.FocusEvent fe)
Sets selection for text entered into javax.swing.JTextFields.

Parameters:
fe - java.awt.event.FocusEvent
Since:
1.0
See Also:
JTextField, FocusEvent

applyAction

public void applyAction()
Applies all changes made within the RGB and Hex text fields. Opens a warning message in a dialog box if invalid input is detected.

Since:
1.0

resetAction

public void resetAction()
Resets this application back to its default values.

Since:
1.0

textFieldGainedFocus

public void textFieldGainedFocus(java.awt.event.FocusEvent fe,
                                 javax.swing.JTextField txt)
Handle actions when a javax.swing.JtextField gains focus.

Parameters:
fe - java.awt.event.FocusEvent
txt - javax.swing.JtextField reference of the field requesting focus.
Since:
1.0

textFieldLostFocus

public void textFieldLostFocus(java.awt.event.FocusEvent fe,
                               javax.swing.JTextField txt)
Handles actions when a javax.swing.JtextField loses focus.

Parameters:
fe - java.awt.event.FocusEvent
txt - javax.swing.JTextField
Since:
1.0

testResetState

public void testResetState()
Passes current RGB field values to the ColorUtil class to parse the string values for RGB int values. Disables reset button if color is set to 0.

Since:
1.0

showColor

public void showColor(java.awt.Color c)
Displays selected color for this instance.

Parameters:
c - java.awt.Color object.
Since:
1.0
See Also:
Color

getRGBColor

public java.awt.Color getRGBColor()
Reads the values from the RGB text fields and converts and returns java.awt.Color object via the ColorUtil class.

Returns:
java.awt.Color object
Since:
1.0

showSafeColor

public void showSafeColor()
Displays the current web-safe color information.

Since:
1.0
See Also:
ColorUtil

showHexString

public void showHexString()
Sets the hexadecimal value in the javax.swing.JTextField.

Since:
1.0

setRGBcontrols

public void setRGBcontrols()
Sets RGB textfields and sliders to the correct values based on the value of the Hex textfield.

Since:
1.0
See Also:
JSlider

setCurrentColor

public void setCurrentColor(java.awt.Color c)
Sets the current color selection.

Parameters:
c - java.awt.Color object of the current selected color.
Since:
1.0

getSafeColor

public java.awt.Color getSafeColor(int[] rgbArray)
Returns the nearest safe color based on the selected color.

Parameters:
rgbArray - int array of RGB values
Returns:
java.awt.Color object
Since:
1.0

getChooserColor

public java.awt.Color getChooserColor(int selection)
Returns the current color selection from the javax.swing.JColorChooser.

Parameters:
selection - int value representing the current chooser color value.
Since:
1.0
See Also:
JColorChooser

colorPicker

public void colorPicker(java.lang.String title,
                        int selection)
Opens a javax.swing.JColorChooser dialog.

Parameters:
title - string for the title bar.
selection - int value for selected color.
Since:
1.0
See Also:
JColorChooser, JDialog, JRootPane

openColorPalette

public void openColorPalette(java.lang.String title,
                             int palette)
Opens the palette windows. The palette windows calls the dispose method of javax.swing.JFrame instead of System.exit during window close events so that the parent window is not destroyed.

Parameters:
title - string for the title bar.
palette - int value representing the palette type.
Since:
1.0
See Also:
WindowAdapter, WindowEvent, ColorModelView

setHexText

public void setHexText(java.lang.String str)
Sets the text value of the Hex text field.

Since:
1.0
See Also:
JTextField

getInsets

public java.awt.Insets getInsets()
Returns the insets for GridBag padding of components in this window.

Returns:
java.awt.Insets object
Since:
1.0
See Also:
Insets

msgDialog

public void msgDialog(java.awt.Component parent,
                      java.lang.Object msg,
                      java.lang.String title,
                      int msgType)
Handles error, warning and information messages by opening a dialog.

The msgType parameter of the msgDialog can accept the following parameters,

Parameters:
parent - parent component for the dialog.
msg - message to disply in the content pane.
title - title bar text.
msgType - defines the style of the message.
Since:
1.0

showAboutBox

public void showAboutBox()
                  throws java.io.IOException
Displays the About object in a bordless window - called from Help menu. The About class is called statically since it is a stand-alone application containing a main method.

Throws:
java.io.IOException - thrown from javax.imageio.ImageIO#read in the About class constructor.

validateTextField

protected void validateTextField(java.awt.event.KeyEvent e)
Validates the textfields and blocks the entry of RGB and hexadecimal values that are out of range.

Parameters:
e - java.awt.event.KeyEvent for text field validation.
Since:
1.0
See Also:
KeyEvent, Character

finalValidation

protected void finalValidation(java.awt.event.FocusEvent fe,
                               javax.swing.JTextField txt)
Completes validation for text fields. Prevents illegal values form being entered into text fields by not allowing values > 255.

Parameters:
fe - java.awt.event.FocusEvent for text field validation.
txt - javax.swing.JTextField reference for validation.
Since:
1.0
See Also:
FocusEvent