Skip to content

Instantly share code, notes, and snippets.

@branflake2267
Created August 5, 2019 18:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save branflake2267/c1f524524d2e0b3af3effbdbc6d0ddb0 to your computer and use it in GitHub Desktop.
Save branflake2267/c1f524524d2e0b3af3effbdbc6d0ddb0 to your computer and use it in GitHub Desktop.
GXT 4 datepicker zindex workaround
import java.util.Date;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.dom.client.Style.BorderStyle;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.RootPanel;
import com.sencha.gxt.cell.core.client.form.DateCell;
import com.sencha.gxt.core.client.dom.XElement;
import com.sencha.gxt.core.client.util.Margins;
import com.sencha.gxt.widget.core.client.Window;
import com.sencha.gxt.widget.core.client.button.TextButton;
import com.sencha.gxt.widget.core.client.container.HBoxLayoutContainer;
import com.sencha.gxt.widget.core.client.container.HBoxLayoutContainer.HBoxLayoutAlign;
import com.sencha.gxt.widget.core.client.container.MarginData;
import com.sencha.gxt.widget.core.client.container.VerticalLayoutContainer;
import com.sencha.gxt.widget.core.client.container.VerticalLayoutContainer.VerticalLayoutData;
import com.sencha.gxt.widget.core.client.event.SelectEvent;
import com.sencha.gxt.widget.core.client.event.SelectEvent.SelectHandler;
import com.sencha.gxt.widget.core.client.form.DateField;
import com.sencha.gxt.widget.core.client.form.FieldLabel;
import com.sencha.gxt.widget.core.client.form.FieldSet;
import com.sencha.gxt.widget.core.client.form.StringComboBox;
import com.sencha.gxt.widget.core.client.form.TextField;
public class WindowWithDateFieldIssue implements EntryPoint {
@Override
public void onModuleLoad() {
String label1 = "field 1";
String label2 = "field 2";
TextField textField1 = new TextField();
TextField textField2 = new TextField();
StringComboBox combo = new StringComboBox();
combo.add("a");
combo.add("b");
combo.add("c");
FieldLabel fl1 = new FieldLabel(textField1, label1);
//FieldLabel fl2 = new FieldLabel(textField2, label2);
HBoxLayoutContainer hlc1 = new HBoxLayoutContainer(HBoxLayoutAlign.MIDDLE);
hlc1.add(fl1);
hlc1.add(combo);
DateCell dateCell = new DateCell() {
@Override
protected void showDatepicker(Context context, XElement parent) {
super.showDatepicker(context, parent);
// ~~~ workaround - debugging
menu.getDatePicker().getElement().getStyle().setProperty("border", "1px solid red");
// ~~~ workaround
menu.getDatePicker().getElement().getStyle().setProperty("zIndex", "1234");
}
};
Date date = new Date();
date.setMonth(3);
DateField dateField = new DateField(dateCell);
dateField.setValue(date);
HBoxLayoutContainer hlc2 = new HBoxLayoutContainer(HBoxLayoutAlign.MIDDLE);
hlc2.add(combo);
hlc2.add(new HTML("|"));
hlc2.add(dateField);
FieldSet fs1 = new FieldSet();
fs1.setHeading("Group1");
fs1.add(hlc1);
FieldSet fs2 = new FieldSet();
fs2.setHeading("Group2");
fs2.add(hlc2);
VerticalLayoutContainer bodyVlc = new VerticalLayoutContainer();
bodyVlc.add(fs1, new VerticalLayoutData(1, -1));
bodyVlc.add(fs2, new VerticalLayoutData(1, -1, new Margins(10, 0, 0, 0)));
final Window window = new Window();
window.getElement().getStyle().setBorderStyle(BorderStyle.NONE);
window.setModal(true);
window.add(bodyVlc, new MarginData(20));
window.addButton(new TextButton("OK"));
//window.autoSize();
TextButton button = new TextButton("Open");
button.addSelectHandler(new SelectHandler() {
@Override
public void onSelect(SelectEvent event) {
window.show();
}
});
RootPanel.get().add(button);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment