You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

DateFieldInSubWindow.java 4.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. package com.vaadin.tests.components.datefield;
  2. import java.util.Date;
  3. import com.vaadin.data.Item;
  4. import com.vaadin.data.util.BeanItem;
  5. import com.vaadin.tests.components.AbstractTestCase;
  6. import com.vaadin.ui.Button;
  7. import com.vaadin.ui.Button.ClickEvent;
  8. import com.vaadin.ui.Component;
  9. import com.vaadin.ui.DateField;
  10. import com.vaadin.ui.DefaultFieldFactory;
  11. import com.vaadin.ui.Field;
  12. import com.vaadin.ui.Form;
  13. import com.vaadin.ui.HorizontalLayout;
  14. import com.vaadin.ui.LegacyWindow;
  15. import com.vaadin.ui.VerticalLayout;
  16. import com.vaadin.ui.Window;
  17. public class DateFieldInSubWindow extends AbstractTestCase {
  18. @SuppressWarnings("serial")
  19. public class TestCaseWindow extends Window {
  20. public class MyBean {
  21. private Date myDate;
  22. private String myString;
  23. public Date getMyDate() {
  24. return myDate;
  25. }
  26. public void setMyDate(Date myDate) {
  27. this.myDate = myDate;
  28. }
  29. public String getMyString() {
  30. return myString;
  31. }
  32. public void setMyString(String myString) {
  33. this.myString = myString;
  34. }
  35. }
  36. private MyBean myBean;
  37. public TestCaseWindow() {
  38. super("Test Case Window");
  39. setModal(true);
  40. setWidth("400px");
  41. myBean = new MyBean();
  42. initWindow();
  43. }
  44. protected class CustomerFieldFactory extends DefaultFieldFactory {
  45. public static final String COMMON_FIELD_WIDTH = "12em";
  46. @Override
  47. public Field<?> createField(Item item, Object propertyId,
  48. Component uiContext) {
  49. Field<?> f = super.createField(item, propertyId, uiContext);
  50. if ("myDate".equals(propertyId)) {
  51. ((DateField) f).setResolution(DateField.RESOLUTION_MIN);
  52. ((DateField) f).setCaption("This is my date");
  53. }
  54. return f;
  55. }
  56. }
  57. protected void initWindow() {
  58. VerticalLayout layout = new VerticalLayout();
  59. layout.setMargin(true);
  60. layout.setSpacing(true);
  61. setContent(layout);
  62. /**
  63. * This causes the window to add the .v-readonly style!
  64. */
  65. setClosable(false);
  66. CustomerFieldFactory fieldFactory = new CustomerFieldFactory();
  67. final Form generalForm = new Form();
  68. {
  69. generalForm.setFooter(null);
  70. generalForm.setCaption("My form");
  71. generalForm.setBuffered(false);
  72. generalForm.setFormFieldFactory(fieldFactory);
  73. BeanItem<MyBean> myBeanItem = new BeanItem<MyBean>(myBean);
  74. generalForm.setItemDataSource(myBeanItem);
  75. generalForm.setVisibleItemProperties(
  76. new String[] { "myDate", "myString" });
  77. generalForm.setValidationVisible(true);
  78. layout.addComponent(generalForm);
  79. }
  80. HorizontalLayout buttons = new HorizontalLayout();
  81. {
  82. buttons.setSpacing(true);
  83. Button b = new Button("Close", new Button.ClickListener() {
  84. @Override
  85. public void buttonClick(ClickEvent event) {
  86. TestCaseWindow.this.close();
  87. }
  88. });
  89. buttons.addComponent(b);
  90. layout.addComponent(buttons);
  91. }
  92. }
  93. }
  94. @Override
  95. public void init() {
  96. LegacyWindow mainWindow = new LegacyWindow();
  97. setMainWindow(mainWindow);
  98. Button open = new Button("Open window", new Button.ClickListener() {
  99. @Override
  100. public void buttonClick(ClickEvent event) {
  101. getMainWindow().addWindow(new TestCaseWindow());
  102. }
  103. });
  104. mainWindow.addComponent(open);
  105. }
  106. @Override
  107. protected String getDescription() {
  108. // TODO Auto-generated method stub
  109. return null;
  110. }
  111. @Override
  112. protected Integer getTicketNumber() {
  113. return 4582;
  114. }
  115. }