StringParameterpublic class StringParameter extends Parameter
Fields Summary |
---|
private String | name | private Text | inputField | private String | defaultValue |
Constructors Summary |
---|
public StringParameter(Composite composite, String name)
this(composite, name, COConfigurationManager.getStringParameter(name));
| public StringParameter(Composite composite, String name, String defaultValue)
this( composite, name, defaultValue, true );
| public StringParameter(Composite composite, String name, String defaultValue, boolean generateIntermediateEvents)
super(name);
this.name = name;
this.defaultValue = defaultValue;
inputField = new Text(composite, SWT.BORDER) {
// I know what I'm doing. Maybe ;)
public void checkSubclass() {
}
// @see org.eclipse.swt.widgets.Text#computeSize(int, int, boolean)
public Point computeSize(int wHint, int hHint, boolean changed) {
// Text widget, at least on Windows, forces the preferred width
// to the width of the text inside of it
// Fix this by forcing to LayoutData's minWidth
Point pt = super.computeSize(wHint, hHint, changed);
if (wHint == SWT.DEFAULT) {
Object ld = getLayoutData();
if (ld instanceof GridData) {
if (((GridData)ld).grabExcessHorizontalSpace) {
pt.x = 10;
}
}
}
return pt;
}
};
String value = COConfigurationManager.getStringParameter(name, defaultValue);
inputField.setText(value);
inputField.addListener(SWT.Verify, new Listener() {
public void handleEvent(Event e) {
e.doit = COConfigurationManager.verifyParameter(name, e.text );
}
});
if ( generateIntermediateEvents ){
inputField.addListener(SWT.Modify, new Listener() {
public void handleEvent(Event event) {
checkValue();
}
});
}
inputField.addListener(SWT.FocusOut, new Listener() {
public void handleEvent(Event event) {
checkValue();
}
});
|
Methods Summary |
---|
protected void | checkValue()
String old_value = COConfigurationManager.getStringParameter( name, defaultValue );
String new_value = inputField.getText();
if ( !old_value.equals( new_value )){
COConfigurationManager.setParameter(name,new_value );
if( change_listeners != null ) {
for (int i=0;i<change_listeners.size();i++){
((ParameterChangeListener)change_listeners.get(i)).parameterChanged(StringParameter.this,false);
}
}
}
| public Control | getControl()
return inputField;
| public java.lang.String | getValue()
return inputField.getText();
| public java.lang.Object | getValueObject()
return COConfigurationManager.getStringParameter(name);
| public void | setLayoutData(java.lang.Object layoutData)
inputField.setLayoutData(layoutData);
| public void | setValue(java.lang.String value)
Utils.execSWTThread(new AERunnable() {
public void runSupport() {
if (inputField == null || inputField.isDisposed()
|| inputField.getText().equals(value)) {
return;
}
inputField.setText(value);
}
});
if (!COConfigurationManager.getStringParameter(name).equals(value)) {
COConfigurationManager.setParameter(name, value);
}
| public void | setValue(java.lang.Object value)
if (value instanceof String) {
setValue((String)value);
}
|
|