<Swing Dev> [10] RFR JDK-8183529: FilleChooser in "Detail view" does not change the Language of the column headings
Semyon Sadetsky
semyon.sadetsky at oracle.com
Mon Jul 10 20:44:30 UTC 2017
It seem this question was already discussed. Now in the fix the column
numbers are used instead of the titles.
--Semyon
On 07/10/2017 12:36 PM, Sergey Bylokhov wrote:
> Small question about current approach:
> will it be affected by the "JComponent.setDefaultLocale(someLocale)"?
> where some locale is English on non-English system.
>
> ----- prasanta.sadhukhan at oracle.com wrote:
> >
>
>
> >
>
>
> >
> > On 7/10/2017 8:37 PM, Semyon Sadetsky wrote:
> >
>
> On 07/10/2017 08:01 AM, Prasanta Sadhukhan wrote:
> >
>
>
> >
>
>
> >
> > On 7/10/2017 8:29 PM, Semyon Sadetsky wrote:
> >
>
> Hi Prasanta,
>
> Please, add static modifier to those java constants.
>
> It causes "NoSuchFieldError" if we access static field defined
> in java from jni.
> >
>
> I did not get this. It is impossible to read static java fields in
> JNI, is that what you mean?
> >
>
> Also, in ShellFolder2.cpp, could you move the
> initialization lines from _doGetColumnInfo() to _initIDs()?
> >
>
> GetObjectField() needs jobject parameter which is not
> available in initIDs()
> >
>
> Did you try GetStaticObjectField()?
> >
> >
>
> Moving to initIDs() causes the same problem I faced earlier
> > / # Internal Error
> (d:\jdk10\client\hotspot\src\share\vm\runtime/jniHandles.hpp:223),
> pid=16860, tid=21856//
> > // # assert(value != (cast_to_oop(::badJNIHandleVal))) failed:
> Pointing to zapped jni handle area//
> > /so I kept in doGetColumnInfo()
> > Modified webrev:
> > http://cr.openjdk.java.net/~psadhukhan/8183529/webrev.06/
> >
> > Regards
> > Prasanta
> >
>
> --Semyon
> >
>
>
> > Regards
> > Prasanta
> >
>
> --Semyon
> >
> >
> > On 07/07/2017 10:49 PM, Prasanta Sadhukhan wrote:
> >
>
>
> >
>
>
> >
> > On 7/8/2017 2:22 AM, Semyon Sadetsky wrote:
> >
>
> Why you declared fields instead of constants? Are
> they supposed to be changed?
> >
>
> Also, most of them are already declared in the
> superclass:
> >
>
> private static final String COLUMN_NAME =
> "FileChooser.fileNameHeaderText";
> > private static final String COLUMN_SIZE =
> "FileChooser.fileSizeHeaderText";
> > private static final String COLUMN_DATE =
> "FileChooser.fileDateHeaderText";
> >
>
> Those had private access and I did not want to change
> superclass but anyways, if you insist here's the
> modified webrev
> >
> http://cr.openjdk.java.net/~psadhukhan/8183529/webrev.05/
> >
> > Regards
> > Prasanta
> >
>
> --Semyon
> >
>
>
> >
> > On 07/07/2017 09:26 AM, Prasanta Sadhukhan wrote:
> >
>
> Modified webrev to not create new string
> objects every time doGetColumnInfo() is
> called, rather it "gets" the string objects.
> >
>
> http://cr.openjdk.java.net/~psadhukhan/8183529/webrev.04/
> >
> > Regards
> > Prasanta
> >
> > On 7/7/2017 8:51 PM, Semyon Sadetsky wrote:
> >
>
> I may be wrong, but the cause may be that
> you did not keep references to those
> objects and they were garbage collected.
>
> --Semyon
> >
>
>
> >
> > On 07/07/2017 08:13 AM, Prasanta
> Sadhukhan wrote:
> >
>
> I tried that putting the
> initialization in initIDs() which will
> be called once only but am getting jni
> crash citing " Pointing to zapped jni
> handle area". Only in
> doGetColumnInfo(), it's working.
> >
>
> > Regards
> > Prasanta
> > On 7/7/2017 8:38 PM, Semyon Sadetsky
> wrote:
> >
>
> That's better. But still each time
> when getFolderColumns() is called
> the title keys are initialized.
> >
>
> That will be more optimal to
> initialize them once only and
> reuse them in consequent calls,
> won't it?
> >
>
> --Semyon
> >
> >
> > On 07/06/2017 11:26 PM, Prasanta
> Sadhukhan wrote:
> >
>
> Modified webrev after removal
> of intermediate variable temp
> and reusing strings
> >
>
> http://cr.openjdk.java.net/~psadhukhan/8183529/webrev.03/
> >
> > Regards
> > Prasanta
> >
> > On 7/6/2017 9:52 PM, Semyon
> Sadetsky wrote:
> >
>
> Why do you need
> intermediate variable temp
> to convert C string to
> java string?
>
> Also could the strings be
> created only once and reused?
> >
>
> --Semyon
> >
> >
> > On 07/06/2017 09:12 AM,
> Prasanta Sadhukhan wrote:
> >
>
> Hi Semyon,
> >
>
> I missed that. I see
> now, the page mentions
> that "The first four
> fields are standard
> for all file system
> folders"
> > Column index
>
> > Column title
> 0 Name
> 1 Size
> 2 Type
> 3 Date Modified
>
> >
> > so I modified webrev
> to rely on column
> index rather than string.
> >
> http://cr.openjdk.java.net/~psadhukhan/8183529/webrev.02/
> >
> > Regards
> > Prasanta
> > On 7/6/2017 9:01 PM,
> Semyon Sadetsky wrote:
> >
>
> Hi Prasanta,
>
> See what MSDN says
> [1] about the
> column titles
> obtained by
> IShellFolder2::GetDetailsOf:
>
> ... Bear in mind
> that these titles
> can be localized
> and might not be
> the same for all
> locales.
>
> --Semyon
> >
>
> [1]
> https://msdn.microsoft.com/en-us/library/windows/desktop/bb775053(v=vs.85).aspx
> >
>
>
> >
> > On 07/06/2017
> 01:13 AM, Prasanta
> Sadhukhan wrote:
> >
>
> Thanks Semyon
> for spotting
> this. Since
> this bug is
> for windows, I
> concentrated
> on windows only.
> >
> > But it
> seems, for
> non-windows
> platform,
> ShellFolder uses
> > COLUMN_NAME
> =
> "FileChooser.fileNameHeaderText";
> > COLUMN_SIZE
> =
> "FileChooser.fileSizeHeaderText";
> > COLUMN_DATE
> =
> "FileChooser.fileDateHeaderText";
> > string which
> is
> locale-sensitive.
> >
> > Only for
> windows, it
> uses
> Win32ShellFolder
> which calls
> IShellDetails::GetDetailsOf()
> to get columns
> details.
> > Modified
> webrev
> applicable for
> only windows
> to convert
> this windows
> specific names
> to
> locale-sensitive
> names.
> >
> >
> http://cr.openjdk.java.net/~psadhukhan/8183529/webrev.01/
> >
> > Regards
> > Prasanta
> >
> > On 7/5/2017
> 8:40 PM,
> Semyon
> Sadetsky wrote:
> >
>
> Hi Prasanta,
>
> Haven't
> you tested
> how the
> details
> header
> localization
> works
> after your
> fix with
> other L&Fs
> and platforms?
>
> --Semyon
> >
>
>
> >
> > On
> 07/04/2017
> 11:42 PM,
> Prasanta
> Sadhukhan
> wrote:
> >
>
> Hi All,
> >
> >
> Please
> review
> a fix
> for a
> locale
> issue
> where
> it is
> seem
> FileChooser
> dialog
> is not
> showing
> the
> column
> heading
> > in
> selected
> locale
> in
> "Detail
> view
> mode".
> > This
> was
> because,
> even
> though
> the
> locale
> strings
> are
> present
> in
> properties
> resource
> file,
> >
> /share/classes/com/sun/java/swing/plaf/windows/resources/windows.properties//
> >
> //FileChooser.fileNameHeader.textAndMnemonic=Name//
> >
> //FileChooser.fileSizeHeader.textAndMnemonic=Size//
> > /the
> check
> done
> is wrong.
> >
> >
> Proposed
> fix is
> to
> check
> and
> get
> locale
> string
> resources
> correctly.
> >
> > Bug:
> https://bugs.openjdk.java.net/browse/JDK-8183529
> >
> webrev:
> http://cr.openjdk.java.net/~psadhukhan/8183529/webrev.00/
> >
> > Regards
> > Prasanta
> >
> >
>
>
> >
>
>
> >
>
>
> >
>
>
> >
>
>
> >
>
>
> >
>
>
> >
>
>
> >
>
>
> >
>
>
> >
>
>
> >
>
>
> >
>
>
> >
>
>
> >
>
>
> >
>
>
> >
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/swing-dev/attachments/20170710/3aea4f04/attachment.html>
More information about the swing-dev
mailing list