package org.ovirt.engine.ui.common.view;
import org.ovirt.engine.ui.common.presenter.CollapsiblePanelPresenterWidget;
import com.google.gwt.core.shared.GWT;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.uibinder.client.UiHandler;
import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.IsWidget;
import com.google.gwt.user.client.ui.ToggleButton;
import com.google.gwt.user.client.ui.Widget;
public class CollapsiblePanelView extends AbstractView implements CollapsiblePanelPresenterWidget.ViewDef {
public interface ViewUiBinder extends UiBinder<Widget, CollapsiblePanelView> {
ViewUiBinder uiBinder = GWT.create(ViewUiBinder.class);
}
private static final String INDEX = "index"; //$NON-NLS-1$
@UiField
FlowPanel headerPanel;
@UiField
ToggleButton collapseButton;
@UiField
FlowPanel contentPanel;
int dragIndex;
/**
* Constructor.
*/
public CollapsiblePanelView() {
initWidget(ViewUiBinder.uiBinder.createAndBindUi(this));
}
@Override
public void addContentWidget(IsWidget widget) {
contentPanel.add(widget);
}
@Override
public void clearContent() {
contentPanel.clear();
}
@Override
public void setTitleWidget(IsWidget widget) {
headerPanel.insert(widget, headerPanel.getWidgetCount() - 1);
}
@UiHandler("collapseButton")
void handleCollapseClick(ClickEvent event) {
contentPanel.setVisible(!contentPanel.isVisible());
}
@Override
public void collapsePanel() {
if (contentPanel.isVisible()) {
collapseButton.setValue(true);
contentPanel.setVisible(false);
}
}
}