/*
* -----------------------------------------------------------------------------
*
* <p><b>License and Copyright: </b>The contents of this file are subject to the
* Mozilla Public License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of the License
* at <a href="http://www.mozilla.org/MPL">http://www.mozilla.org/MPL/.</a></p>
*
* <p>Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
* the specific language governing rights and limitations under the License.</p>
*
* <p>The entire file consists of original code. Copyright © 2003, 2004
* Tufts University. All rights reserved.</p>
*
* -----------------------------------------------------------------------------
*/
package tufts.vue.beans;
import java.lang.*;
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.beans.*;
public class StringEditor extends PropertyEditorSupport {
/////////
// Fields
//////////
/** the set value **/
String mValue = null;
/** the custom editor **/
private JTextField mEditor = null;
/////////////
// Constructor
//////////////
/**
* Constructs a new StringEditor
**/
public StringEditor() {
super();
mEditor = new JTextField();
}
///////////////
// Methods
/////////////////
/**
* setValue
* Sets the value of the editor
* @param Object new value
**/
public void setValue( Object pValue) {
boolean hasChanged = false;
String newValue = null;
if( pValue == null) {
hasChanged = (mValue != null);
newValue = "";
}
else
if( pValue instanceof String) {
hasChanged = ( (mValue == null) || (!mValue.equals( (String) pValue) ));
if( hasChanged ) {
newValue = (String) pValue;
}
}
else {
hasChanged = ( (mValue == null) || (! mValue.equals(pValue.toString()) ));
if( hasChanged) {
newValue = pValue.toString();
}
}
if( hasChanged) {
mValue = newValue;
firePropertyChange();
}
}
/**
* getValue
* @return Object the string value
**/
public Object getValue() {
String value = mEditor.getText();
return value;
}
/**
* isPaintable
* Can this editor paint a value of itself
* #return false nope it can't
**/
public boolean isPaintable() {
return false;
}
/**
* PaintValue
* Paints the value in the box provided
* Not supported in this editor at this time
**/
public void paintValue(Graphics pGraphics, Rectangle pBox) {
}
/**
* getJavaInitializationString
* Returns the constructor text
**/
public String getJavaInitializationString() {
char quote = '"';
String str = "new String";
return str;
}
/**
* getAsText
* returns the value as text
**/
public String getAsText() {
return mEditor.getText();
}
/**
* setAsText
* Sets teh value as a text value
**/
public void setAsText( String pText) {
setValue( pText);
}
/**
* getTags
* retruns tag values. If used, setAsText must support tagged values
**/
public String [] getTags() {
return null;
}
/**
* getCustomEditor
* Returns the UI Component to edit the value
**/
public Component getCustomEditor() {
return mEditor;
}
/**
* Does this editor support custom UI editor component?
* @return true
**/
public boolean supportsCustomEditor() {
return true;
}
/**
* EditorFocusListener
* This inner cclass is used to listen to focus to save any changes to
* the users notes.
**/
public class EditorFocusListener implements FocusListener {
public EditorFocusListener() {
}
public void focusGained( FocusEvent pEvent) {
}
public void focusLost( FocusEvent pEvent) {
setValue( mEditor.getText() );
}
}
}