<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-IN" link="blue" vlink="purple" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal"><span style="mso-fareast-language:EN-US">Hello SWinxy,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US">              Thank you for the feedback. We will consider your feedback suggestions and these are really helpful in this proposal.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US">Regards,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US">Tejesh R<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span lang="EN-US">From:</span></b><span lang="EN-US"> SWinxy <swinxythecat@gmail.com>
<br>
<b>Sent:</b> 22 August 2024 23:37<br>
<b>To:</b> Tejesh R <tejesh.r@oracle.com><br>
<b>Cc:</b> client-libs-dev@openjdk.java.net<br>
<b>Subject:</b> [External] : Re: Seeking feedback on a possible JDatePicker Swing component<o:p></o:p></span></p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt">Tejesh, I think it would be a nice feature, and I would be happy to help with it. There are a lot of considerations for displaying calendars. I don't think we should have the date & time combined into one UI
 component, but separate components, the former of which I'll focus on here. There are two parts to it: first is textbox(es), and second a calendar grid. Here are some requirements that I can think of right now:<o:p></o:p></p>
<div>
<p class="MsoNormal">- Start of the week. Different regions of the world have the week start on different days, usually Sunday or Monday, but some start on Saturday. [1] macOS and Windows both let you change this to any day of the week. On macOS, this is defined
 by NSCalendar's firstWeekday.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">- Should there be one text field, or should there be three for day-month-year? Allow the dev to choose? If multiple text boxes, the ways to traverse to the next field should include the period, space, slash, and dash keys in addition to
 the tab key. (This is because people can type 10/10/10 or 10.10.10 all at once and not have to press tab.) Pasting in a date should be supported in either case, and converted to the displayed locale.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">- The UI should update in response to a notification from the system that the user has changed their preferred calendar format.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">- Either way we have the text box, allowing the developer to choose if they want a text box with a popup calendar grid or one that is in the same panel would be ideal. (That is, they add it to the same panel themself.)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">- The calendar grid should be able to be oriented horizontally or vertically. (When the calendar moves around, does it go left-right or up-down?) Calendar grids often show the previous and next months' dates as padding when the start and
 end of the month aren't cleanly cut by the start and ends of the week. When going horizontally, the developer should have the option to show or hide those dates. When vertical, the developer should be able to decide if the grid is continuous or interrupted.
 (To pad with numbers or to pad with empty space.)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">- UI for changing the month and year of the grid. This can take the form of left-right arrows, scrolling, and/or dropdown for the month and a text field for the year.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Extra things:<o:p></o:p></p>
</div>
<p class="MsoNormal">- Calendar type. Most people use Gregorian, but a small number of people can choose otherwise for their systems. macOS gives me a bunch of options, but Windows only allows me to do Gregorian. This is a "wow wouldn't it be cool" optional
 feature.<o:p></o:p></p>
<div>
<p class="MsoNormal">- A 'today' button, which selects the current date.<o:p></o:p></p>
</div>
<p class="MsoNormal">- How to represent a date range with a calendar and a textbox, I'm not sure. The easy workaround would be to have the developer create two of these date pickers. But a way to select a range would be welcome.<o:p></o:p></p>
<div>
<p class="MsoNormal">- If we do also have a component for time, should we allow for the changing of timezones in the UI? Timezones are too much imo.<o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal">I'm relying on screenshots on Google for date pickers and NSDatePicker for what features they have. I'm sure I would be able to make use of this somewhere in my own Swing app.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">SWinxy<o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal">[1] <a href="https://urldefense.com/v3/__https:/en.wikipedia.org/wiki/Week__;!!ACWV5N9M2RV99hQ!PUGV28rhgttY2Jyl8p8VAmYPMN-lM1GJT1GBsnZ_vZZ2N2vdraOT_W0xk8aNQnVs-8S5CedYzf0lcDCVFn8J$" target="_blank">https://en.wikipedia.org/wiki/Week</a><o:p></o:p></p>
</div>
</div>
</div>
</div>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<p class="MsoNormal">On Thu, Aug 22, 2024 at 2:29 AM Tejesh R <<a href="mailto:tejesh.r@oracle.com" target="_blank">tejesh.r@oracle.com</a>> wrote:<o:p></o:p></p>
</div>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm">
<div>
<div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="color:black">Hello Swing Community,</span>
<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="color:black">Swing has a rich set of UI components in the core Java Platform.<br>
But it lacks a Date Picker which is a significant gap for many applications and so we are considering revisiting the idea of a Date Picker in core Swing.</span><br>
<span style="color:black"><br>
The function core of a DatePicker is to let a user select a day [and time?], or range of days [and time ? ],<br>
within optional application specified constraints.<br>
<br>
The JXDatePicker component was previously explored as part of the long defunct external SwingX project.</span><br>
<span style="color:black">This proposal does not imply reviving JXDatePicker, but being informed by it and date pickers for other platforms.</span><br>
<br>
<span style="color:black">Before even starting on this, we are seeking feedback from the community<br>
</span> <br>
<span style="color:black">- Is it of interest ?</span><br>
<br>
<span style="color:black">- Would you use it ?</span><br>
<br>
<span style="color:black">- What features must it have ?</span><br>
<br>
<span style="color:black">- What features are nice to have ?</span><br>
<br>
<span style="color:black">- Do you have any experiences of other date pickers that reinforce those responses ?</span><br>
<br>
<span style="color:black">- Anything else ?</span><br>
<br>
If we move forward, we would propose a JEP and also expect that we would deliver it first as a preview feature [1] , so that it may evolve in response to feedback before becoming final.<br>
<br>
<span style="color:black">Please let us know your thoughts and suggestions on this proposal.</span>
<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="color:black">Regards,</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="color:black">Tejesh R.</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="color:black">JDK client team</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span style="color:black">[1]
<a href="https://openjdk.org/jeps/12" target="_blank">https://openjdk.org/jeps/12</a></span><o:p></o:p></p>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</body>
</html>