package ch.unifr.pai.twice.widgets.mpproxyframe.client;
/*
* Copyright 2013 Oliver Schmid
* 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.
*/
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.logical.shared.ValueChangeEvent;
import com.google.gwt.event.logical.shared.ValueChangeHandler;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.SplitLayoutPanel;
import com.google.gwt.user.client.ui.TextBox;
/**
* A more complex widget providing control mechanisms for a {@link MPFrame}
*
* @author Oliver Schmid
*
*/
public class ComplexMPFrame extends SplitLayoutPanel {
private final Button back = new Button("back");
private final Button forward = new Button("forward");
private final Button reload = new Button("reload");
private final TextBox url = new TextBox();
private final MPFrame frame = new MPFrame();
private final Controller controller = new Controller(frame);
public ComplexMPFrame() {
super();
HorizontalPanel p = new HorizontalPanel();
p.add(back);
p.add(forward);
p.add(url);
p.add(reload);
p.setWidth("100%");
p.setHeight("100%");
back.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent arg0) {
frame.back();
}
});
forward.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent arg0) {
frame.forward();
}
});
reload.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent arg0) {
frame.reload();
}
});
p.setCellWidth(url, "100%");
addNorth(p, 30);
url.addValueChangeHandler(new ValueChangeHandler<String>() {
@Override
public void onValueChange(ValueChangeEvent<String> arg0) {
frame.setUrl(arg0.getValue());
}
});
addSouth(controller, 170);
add(frame);
}
public MPFrame getFrame() {
return frame;
}
}