@Override public void handleEvent (Event event) { popupCalendar.calendarDisplayed = !isDropped (); setFocus (); dropDownCalendar (!isDropped ()); } });
@Override public void handleEvent (Event event) { popupCalendar.calendarDisplayed = !isDropped (); setFocus (); dropDownCalendar (!isDropped ()); } });
@Override public void handleEvent (Event event) { popupCalendar.calendarDisplayed = !isDropped (); setFocus (); dropDownCalendar (!isDropped ()); } });
void sendVerticalSelection () { setFocus(); if (isDropped ()) { hideCalendar(); } else { showCalendar(); } }
private void showPopupShell (Point containerBounds, Point calendarSize, Rectangle coordsRelativeToScreen, Rectangle displayRect) { int width = Math.max (containerBounds.x, calendarSize.x + 2); int height = calendarSize.y + 2; int y = calculateCalendarYpos (containerBounds, coordsRelativeToScreen, height, displayRect); int x = calculateCalendarXpos (calendarSize, coordsRelativeToScreen, displayRect, width); popupShell.setBoundsInPixels (x, y, width, height); popupShell.setVisible (true); if (isFocusControl ()) { popupCalendar.setFocus (); } }
private void showPopupShell (Point containerBounds, Point calendarSize, Rectangle coordsRelativeToScreen, Rectangle displayRect) { int width = Math.max (containerBounds.x, calendarSize.x + 2); int height = calendarSize.y + 2; int y = calculateCalendarYpos (containerBounds, coordsRelativeToScreen, height, displayRect); int x = calculateCalendarXpos (calendarSize, coordsRelativeToScreen, displayRect, width); popupShell.setBoundsInPixels (x, y, width, height); popupShell.setVisible (true); if (isFocusControl ()) { popupCalendar.setFocus (); } }
private void showPopupShell (Point containerBounds, Point calendarSize, Rectangle coordsRelativeToScreen, Rectangle displayRect) { int width = Math.max (containerBounds.x, calendarSize.x + 2); int height = calendarSize.y + 2; int y = calculateCalendarYpos (containerBounds, coordsRelativeToScreen, height, displayRect); int x = calculateCalendarXpos (calendarSize, coordsRelativeToScreen, displayRect, width); popupShell.setBoundsInPixels (x, y, width, height); popupShell.setVisible (true); if (isFocusControl ()) { popupCalendar.setFocus (); } }
void hideCalendar() { if (!isDropped ()) return; popupShell.setVisible (false); if (!isDisposed () && isFocusControl()) { setFocus(); } display.removeFilter(SWT.MouseDown, clickListener); }
void showCalendar() { if (isDropped ()) return; savedYear = getYear (); savedMonth = getMonth (); savedDay = getDay (); if (getShell() != popupShell.getParent ()) { disposePopupShell(); createPopupShell (savedYear, savedMonth, savedDay); } Point dateBounds = getSize (); Point calendarSize = popupCalendar.computeSize (SWT.DEFAULT, SWT.DEFAULT, false); popupCalendar.setBounds (1, 1, Math.max (dateBounds.x - 2, calendarSize.x), calendarSize.y); popupCalendar.setDate(savedYear, savedMonth, savedDay); Rectangle parentRect = display.map (getParent (), null, getBounds ()); Rectangle displayRect = getMonitor ().getClientArea (); int width = Math.max (dateBounds.x, calendarSize.x + 2); int height = calendarSize.y + 2; int x = parentRect.x; int y = parentRect.y + dateBounds.y; if (y + height > displayRect.y + displayRect.height) y = parentRect.y - height; if (x + width > displayRect.x + displayRect.width) x = displayRect.x + displayRect.width - calendarSize.x; popupShell.setBounds (x, y, width, height); popupShell.setVisible (true); if (isFocusControl()) popupCalendar.setFocus (); display.addFilter(SWT.MouseDown, clickListener); }