package com.griddynamics.jagger.webclient.client.components;
import com.google.gwt.user.client.ui.DialogBox;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.griddynamics.jagger.webclient.client.resources.JaggerResources;
import com.sencha.gxt.core.client.util.Margins;
import com.sencha.gxt.widget.core.client.button.TextButton;
import com.sencha.gxt.widget.core.client.event.SelectEvent;
/**
* Created with IntelliJ IDEA.
* User: mnovozhilov
* Date: 2/20/14
* Time: 12:34 PM
* To change this template use File | Settings | File Templates.
*/
public abstract class AbstractWindow extends DialogBox {
protected int width = 600;
protected int height = 500;
private TextButton saveButton;
private TextButton cancelButton;
private TextButton applyButton;
private final int PIXELS_BETWEEN_BUTTONS = 10;
public AbstractWindow(String width, String height){
setSize(width,height);
}
public AbstractWindow(){
addStyleName(JaggerResources.INSTANCE.css().abstractWindow());
setPixelSize(width,height);
setPopupPosition(300, 100);
}
protected void defaultButtonInitialization(){
saveButton = new TextButton("Save");
saveButton.setPixelSize(60, 22);
saveButton.getElement().setMargins(new Margins(0, 0, 0, 0));
saveButton.addSelectHandler(new SelectEvent.SelectHandler() {
@Override
public void onSelect(SelectEvent selectEvent) {
onSaveButtonClick();
}
});
applyButton = new TextButton("Apply");
applyButton.setPixelSize(60, 22);
applyButton.getElement().setMargins(new Margins(0,0,0,0));
applyButton.addSelectHandler(new SelectEvent.SelectHandler() {
@Override
public void onSelect(SelectEvent selectEvent) {
onApplyButtonClick();
}
});
cancelButton = new TextButton("Cancel");
cancelButton.setPixelSize(60, 22);
cancelButton.getElement().setMargins(new Margins(0, 0, 0, PIXELS_BETWEEN_BUTTONS));
cancelButton.addSelectHandler(new SelectEvent.SelectHandler() {
@Override
public void onSelect(SelectEvent selectEvent) {
onCancelButtonClick();
}
});
}
protected HorizontalPanel getDefaultButtonBar(){
HorizontalPanel saveAndCancelButtonBar = new HorizontalPanel();
saveAndCancelButtonBar.setSpacing(5);
saveAndCancelButtonBar.add(applyButton);
saveAndCancelButtonBar.add(saveButton);
saveAndCancelButtonBar.add(cancelButton);
return saveAndCancelButtonBar;
}
protected TextButton getSaveButton() {
return saveButton;
}
protected TextButton getCancelButton() {
return cancelButton;
}
protected TextButton getApplyButton() {
return applyButton;
}
protected abstract void onSaveButtonClick();
protected abstract void onCancelButtonClick();
protected abstract void onApplyButtonClick();
}