/*
* Copyright 2010-2011 Research In Motion Limited.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package blackberry.web.widget.impl;
import net.rim.device.api.ui.Field;
import net.rim.device.api.ui.FieldChangeListener;
import net.rim.device.api.ui.component.ButtonField;
import net.rim.device.api.ui.component.Dialog;
import net.rim.device.api.ui.container.HorizontalFieldManager;
public class WidgetError extends Dialog implements Runnable, FieldChangeListener {
private ButtonField _ok;
/**
* Constructor.
*/
public WidgetError( Throwable t, String url ) {
super( t.getMessage(), null, null, 0, null );
initialize();
}
/* Override */
public void run() {
doModal();
synchronized( this ) {
notify();
}
}
/**
* Handles button select events for this dialog.
*
* <p>
* If the provided field is a {@link ButtonField}, this method invokes {@link #select()} to signal a button push.
*
* @param field
* Field whose state changed.
* @param context
* Information specifying the origin of the change.
* */
public void fieldChanged( Field field, int context ) {
if( field != null && field == _ok) {
select();
}
}
private void initialize() {
HorizontalFieldManager mgr = new HorizontalFieldManager( Field.FIELD_HCENTER );
add( mgr );
_ok = new ButtonField( "OK", Field.FIELD_HCENTER );
_ok.setChangeListener( this );
mgr.add( _ok );
setEscapeEnabled( true );
}
}