Modify

Opened 9 years ago

Last modified 36 hours ago

#7548 assigned enhancement

Re-organize the preference dialog

Reported by: simon04 Owned by: simon04
Priority: normal Milestone: 20.10
Component: Core Version:
Keywords: Cc: Klumbumbus, openstreetmap.org-user-d1g

Description

To me, the current preference dialog is not very intuitive. Especially, Often, I click through several panes to find the desired one.

I would like to make the following improvement suggestions:

  • Instead of icons use (additionally) textual labels for the buttons on the left hand side. This allows IMO to find the desired one more quickly.
  • Reorganize all panes in categories and sub-categories as follows:
  • Mapping
    • OSM Data
    • GPS Points
    • Map Projection
    • Map Paint Styles
    • Tagging Presets
    • Imagery
  • Servers
    • Authentication
    • Proxy settings
  • UI/JOSM
    • Colors
    • Look and Feel
    • File backup
    • Toolbar
    • Keyboard Shortcuts
  • Advanced
    • Audio
    • Validator
    • Remote control
    • Advanced Preferences
  • Plugins
    • Install/update
    • Update policy
    • … (custom panes of plugins)

I'm happy to hear some opinions :-)

Attachments (20)

7548.png (33.5 KB) - added by simon04 9 years ago.
7548_alpha.patch (48.2 KB) - added by simon04 9 years ago.
7548_v02.patch (47.8 KB) - added by simon04 8 years ago.
phpyWYECZ (44.9 KB) - added by bastiK 8 years ago.
updated patch to r5506
7548_2014.patch (81.1 KB) - added by simon04 6 years ago.
7548_2014_v2.patch (85.3 KB) - added by simon04 6 years ago.
7548_plugins.patch (4.8 KB) - added by simon04 6 years ago.
7548_2014_v3.patch (85.5 KB) - added by simon04 6 years ago.
2020-10-11-102936_852x756_scrot.png (42.3 KB) - added by simon04 2 weeks ago.
2020-10-11-112249_898x956_scrot.png (40.5 KB) - added by simon04 2 weeks ago.
2020-10-11-114632_898x956_scrot.png (57.5 KB) - added by simon04 2 weeks ago.
2020-10-11-123753_898x956_scrot.png (41.2 KB) - added by simon04 2 weeks ago.
2020-10-11-124515_898x956_scrot.png (46.9 KB) - added by simon04 2 weeks ago.
2020-10-11-192837_598x742_scrot.png (28.8 KB) - added by simon04 2 weeks ago.
7548-init.patch (848 bytes) - added by GerdP 2 weeks ago.
prefs-with-search.png (30.6 KB) - added by GerdP 12 days ago.
display.png (41.2 KB) - added by Don-vip 6 days ago.
Screenshot 2020-10-21 at 19.13.22.png (154.7 KB) - added by Stereo 6 days ago.
The preferences panel also looks very very weird on macOS in Java 15.
7548-no-empty.patch (2.4 KB) - added by GerdP 3 days ago.
@Klumbumbus Please try this patch. It solves the problem on both my PC and the laptop
Screenshot 2020-10-26 at 14.15.28.png (153.0 KB) - added by Stereo 43 hours ago.
17265 macos

Download all attachments as: .zip

Change History (116)

Changed 9 years ago by simon04

Attachment: 7548.png added

comment:1 Changed 9 years ago by simon04


Changed 9 years ago by simon04

Attachment: 7548_alpha.patch added

comment:2 Changed 9 years ago by simon04

Summary: Re-organize the preference dialog[alpha Patch] Re-organize the preference dialog
Type: defectenhancement

comment:3 Changed 9 years ago by akks

It looks really good, but not too easy :)

Other possible problem: are you sure it will fit on 800x600 width or 1024x768 with enlarged font, like in
http://josm.openstreetmap.de/ticket/7450#comment:40 ?

Maybe we need some shorter TODO list for non-experts?
Main reasons to change preferences for them are

  • specify OSM account, maybe with OpenID
  • specify proxy, if it exists
  • install needed plugins (recommended on forums, etc.)
  • configure imagery sources (choose specific for your region)
  • sometimes - remote control, beacuse online tools need it

On the other hand, we can not hide all other preferences or do reordering for non-experts only...

Last edited 9 years ago by akks (previous) (diff)

comment:4 in reply to:  3 ; Changed 9 years ago by simon04

Replying to akks:

It looks really good, but not too easy :)

Actually, the required changes have been the same for each preference tab (except for some).

Other possible problem: are you sure it will fit on 800x600 width or 1024x768 with enlarged font, like in
http://josm.openstreetmap.de/ticket/7450#comment:40 ?

Currently, (vertical and horizontal) scrollbars are shown on the right pane whenever necessary. However, this happens also in unexpected cases at the moment (e.g., instead of horizontally scrolling the tagging presets lists themselves, an outer scrollbar is shown).

Maybe we need some shorter TODO list for non-experts?
Main reasons to change preferences for them are

  • specify OSM account, maybe with OpenID
  • specify proxy, if it exists
  • install needed plugins (recommended on forums, etc.)
  • configure imagery sources (choose specific for your region)
  • sometimes - remote control, beacuse online tools need it

On the other hand, we can not hide all other preferences or do reordering for non-experts only...

This would suggest to have something like a quick setup wizard. I guess, the OSM account can be skipped as this is requested anyway when uploading changes.

Concerning plugins, custom styles, custom presets and imagery sources, it would be great to somehow have "bundled versions" which installs the things automatically.

comment:5 in reply to:  4 Changed 9 years ago by akks

Replying to simon04:

This would suggest to have something like a quick setup wizard. I guess, the OSM account can be skipped as this is requested anyway when uploading changes.

Yes, some quick setup wizard would be good. Maybe something with highlighting most important preferences tabs and showing tooltips on them could help too...

Concerning plugins, custom styles, custom presets and imagery sources, it would be great to somehow have "bundled versions" which installs the things automatically.

Currently this can be already done by custom configurations, (#4421)
For example, I have settings for drawing forests in Russia: http://josm.openstreetmap.de/attachment/ticket/4421/forestMapping.xml

Last edited 9 years ago by akks (previous) (diff)

Changed 8 years ago by simon04

Attachment: 7548_v02.patch added

comment:6 Changed 8 years ago by simon04

I resolved some merging conflicts due to code changes. In addition, the horizontal scrolling problem as described above has been resolved by not using the ScrollPane for the corresponding preferences.

comment:7 Changed 8 years ago by bastiK

Some comments:

  • "File backup" can be moved to the Advanced section.
  • Instead of JTabbedPane you could use JList or JTree on the left and CardLayout on the right: When there is not enough vertical space for all the entries on the left, the scrolling works better for a list. By using one JList for each category, you can add the large icons as labels in between, so they aren't clickable any more.
  • It would be nice to have new icons for "Mapping" and "User Interface".

comment:8 Changed 8 years ago by simon04

Thank you for your comments, bastiK!

  • Good point concerning "File backup"
  • Concerning icons, we might find something on http://thenounproject.com/noun/earth/#icon-No1238
  • What would be the advantage of the CardLayout?
  • The big icons in the current solution could display some help text for the corresponding settings (just as an idea).

comment:9 in reply to:  8 Changed 8 years ago by bastiK

Replying to simon04:

  • What would be the advantage of the CardLayout?
  • The big icons in the current solution could display some help text for the corresponding settings (just as an idea).

It is a little unconventional to have two kinds of tabs (icon and text). With CardLayout you can simulate a JTabbedPane, and use your own GUI to switch the content of the main panel.

comment:10 Changed 8 years ago by simon04

JOSM (is|might be) unconventional in other aspects as well. :-)

IMO, this sounds like (a lot?) effort for mostly aesthetic things. ATM, I'm not really up to those changes, are you? ;-)

comment:11 Changed 8 years ago by stoecker

What's the status of this? Something for a hidden option?

comment:12 Changed 8 years ago by simon04

This patch might need some adaption due to r5465. Having a hidden option might be difficult (additional work), as I had to restructure some preference panels to fit the new idea. We might want to add this change right at the beginning of a "free development" phase.

Dirk, what do you think?

comment:13 Changed 8 years ago by bastiK

Hidden option wouldn't do much good and is too much work to implement.

Changed 8 years ago by bastiK

Attachment: phpyWYECZ added

updated patch to r5506

Changed 6 years ago by simon04

Attachment: 7548_2014.patch added

comment:14 Changed 6 years ago by simon04

Summary: [alpha Patch] Re-organize the preference dialog[β Patch] Re-organize the preference dialog

Updated patch to current revision, quite some merging conflicts ;-). Also improved some messages, dialogs. attachment:7548_2014.patch

Should we give it a try? What do you think?

comment:15 Changed 6 years ago by Don-vip

I give it a look after I finish #9984 :)

comment:16 Changed 6 years ago by Don-vip

It's really nice I love it :) I vote in favour of this new layout. But I have encountered a strange bug when clicking in Connection Settings:

Revision: 7133
Is-Local-Build: true
Build-Date: 2014-05-15 23:48:37

Identification: JOSM/1.5 (7133 SVN en) Windows 8.1 64-Bit
Memory Usage: 79 MB / 2731 MB (37 MB allocated, but free)
Java version: 1.8.0_05, Oracle Corporation, Java HotSpot(TM) 64-Bit Server VM
VM arguments: [-Xmx3G, -Dfile.encoding=UTF-8]
Program arguments: [--debug]

java.lang.NoClassDefFoundError: sun/awt/VerticalBagLayout
	at org.openstreetmap.josm.gui.preferences.server.ServerAccessPreference.buildContentPanel(ServerAccessPreference.java:42)
	at org.openstreetmap.josm.gui.preferences.server.ServerAccessPreference.addGui(ServerAccessPreference.java:56)
	at org.openstreetmap.josm.gui.preferences.PreferenceTabbedPane.stateChanged(PreferenceTabbedPane.java:593)
	at javax.swing.DefaultSingleSelectionModel.fireStateChanged(DefaultSingleSelectionModel.java:132)
	at javax.swing.DefaultSingleSelectionModel.setSelectedIndex(DefaultSingleSelectionModel.java:67)
	at javax.swing.JTabbedPane.setSelectedIndexImpl(JTabbedPane.java:616)
	at javax.swing.JTabbedPane.setSelectedIndex(JTabbedPane.java:591)
	at javax.swing.plaf.basic.BasicTabbedPaneUI$Handler.mousePressed(BasicTabbedPaneUI.java:3645)
	at java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:279)
	at java.awt.Component.processMouseEvent(Component.java:6524)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
	at java.awt.Component.processEvent(Component.java:6292)
	at java.awt.Container.processEvent(Container.java:2234)
	at java.awt.Component.dispatchEventImpl(Component.java:4883)
	at java.awt.Container.dispatchEventImpl(Container.java:2292)
	at java.awt.Component.dispatchEvent(Component.java:4705)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4898)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4530)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4462)
	at java.awt.Container.dispatchEventImpl(Container.java:2278)
	at java.awt.Window.dispatchEventImpl(Window.java:2739)
	at java.awt.Component.dispatchEvent(Component.java:4705)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:746)
	at java.awt.EventQueue.access$400(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:697)
	at java.awt.EventQueue$3.run(EventQueue.java:691)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86)
	at java.awt.EventQueue$4.run(EventQueue.java:719)
	at java.awt.EventQueue$4.run(EventQueue.java:717)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:716)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:109)
	at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:184)
	at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:229)
	at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:227)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:227)
	at java.awt.Dialog.show(Dialog.java:1084)
	at java.awt.Component.show(Component.java:1656)
	at java.awt.Component.setVisible(Component.java:1608)
	at java.awt.Window.setVisible(Window.java:1014)
	at java.awt.Dialog.setVisible(Dialog.java:1005)
	at org.openstreetmap.josm.gui.preferences.PreferenceDialog.setVisible(PreferenceDialog.java:126)
	at org.openstreetmap.josm.actions.PreferencesAction.run(PreferencesAction.java:112)
	at org.openstreetmap.josm.actions.PreferencesAction.actionPerformed(PreferencesAction.java:101)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2346)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
	at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:289)
	at java.awt.Component.processMouseEvent(Component.java:6527)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
	at java.awt.Component.processEvent(Component.java:6292)
	at java.awt.Container.processEvent(Container.java:2234)
	at java.awt.Component.dispatchEventImpl(Component.java:4883)
	at java.awt.Container.dispatchEventImpl(Container.java:2292)
	at java.awt.Component.dispatchEvent(Component.java:4705)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4898)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4533)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4462)
	at java.awt.Container.dispatchEventImpl(Container.java:2278)
	at java.awt.Window.dispatchEventImpl(Window.java:2739)
	at java.awt.Component.dispatchEvent(Component.java:4705)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:746)
	at java.awt.EventQueue.access$400(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:697)
	at java.awt.EventQueue$3.run(EventQueue.java:691)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86)
	at java.awt.EventQueue$4.run(EventQueue.java:719)
	at java.awt.EventQueue$4.run(EventQueue.java:717)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:716)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Caused by: java.lang.ClassNotFoundException: sun.awt.VerticalBagLayout
	at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	... 87 more

comment:17 Changed 6 years ago by Don-vip

Also, the direct access from validator dialog to validator preferences (through the small icon left dock/undock icon) does not work anymore.

comment:18 in reply to:  17 Changed 6 years ago by skyper

Replying to Don-vip:

Also, the direct access from validator dialog to validator preferences (through the small icon left dock/undock icon) does not work anymore.

How about the mappaint toggle dialog. Does this link work ?

comment:19 Changed 6 years ago by Don-vip

Don't think so, it's the same code :)

Changed 6 years ago by simon04

Attachment: 7548_2014_v2.patch added

comment:20 Changed 6 years ago by simon04

Thank you for your feedback!

In attachment:7548_2014_v2.patch​, comment:16 and comment:17 have been resolved (comment:18 wasn't a problem).
(Concerning comment:16: In the old days I tried to come around GridBagLayout by trying other managers )

comment:21 Changed 6 years ago by Don-vip

Much better :) Still another problem with direct access:

  1. setup a nonexistent proxy and erase the MOTD in user directory
  2. restart JOSM, there's an error message with a "change proxy settings" button
  3. This button leads to connection tab, not the proxy one

comment:22 Changed 6 years ago by Don-vip

Also the 2 methods PreferencesAction.forPreferenceSubTab should be removed, no?

comment:23 Changed 6 years ago by simon04

Milestone: 14.06

Right, thank you – patch adapted. Some plugins need also to be adapted – patch attached.

Let's keep this for the subsequent stable release to have enough time for finding more bugs …

Changed 6 years ago by simon04

Attachment: 7548_plugins.patch added

Changed 6 years ago by simon04

Attachment: 7548_2014_v3.patch added

comment:24 Changed 6 years ago by Don-vip

Time to give it a try? :)

comment:25 Changed 6 years ago by Don-vip

Milestone: 14.0614.07

Move all tickets for which no work has been done yet to next milestone

comment:26 Changed 6 years ago by Don-vip

The patch may need an update after r7299.

comment:27 Changed 6 years ago by Don-vip

Milestone: 14.0714.08

Move some tickets to next milestone

comment:28 Changed 6 years ago by Don-vip

Milestone: 14.08

comment:29 Changed 6 years ago by Klumbumbus

Cc: Klumbumbus added

comment:30 Changed 4 years ago by openstreetmap.org-user-d1g

Yes, text labels are far better than only icons in tabs.

Compared to Firefox
In the Firefeox we have "file", "edit" "view" and so on.
If you open "about:preferences" there would be "General", "Search", "Content", "Applications", "Privacy", "Security", "Sync", "Advanced"
There no icons in the "main menu", icons in about:preferences is alongside to ordinary text labels.

Any reason why it wasn't merged? Nobody had time for it?

comment:31 Changed 4 years ago by openstreetmap.org-user-d1g

Cc: penstreetmap.org-user-d1g added

comment:32 Changed 4 years ago by openstreetmap.org-user-d1g

Cc: openstreetmap.org-user-d1g added; penstreetmap.org-user-d1g removed

comment:33 Changed 4 years ago by openstreetmap.org-user-d1g

Please don't use centrer aligned text in the horizontal tabs (on the left). Is is harder to find beginning of the each word.

Firefox/Chromium aligns text to the left.

Last edited 4 years ago by openstreetmap.org-user-d1g (previous) (diff)

comment:34 Changed 8 weeks ago by skyper

Was this patch forgotten or does it simply not work?

+1 for changing.

comment:35 Changed 8 weeks ago by simon04

Milestone: 20.10

It was ready, for forgotten twice after a stabilization phase. Now it needs a big overhaul due to various merge conflicts. I can try to update it again.

(Btw: I started working on this idea on the train to FOSSGIS 2012…)

comment:36 in reply to:  35 Changed 8 weeks ago by skyper

Replying to simon04:

It was ready, for forgotten twice after a stabilization phase. Now it needs a big overhaul due to various merge conflicts. I can try to update it again.

(Btw: I started working on this idea on the train to FOSSGIS 2012…)

Where is the FOSSGIS 2021? Guess to far away in time to wait for a release of the enhancement on the train to the conference.

comment:37 Changed 8 weeks ago by simon04

2021: Rapperswil, CH (≈4h)

comment:38 in reply to:  37 Changed 8 weeks ago by skyper

Replying to simon04:

2021: Rapperswil, CH (≈4h)

Oh, forgot about it. Think we talked about it already in March. See you there. Greetings from Vorder-Östrereich.

comment:39 Changed 6 weeks ago by Klumbumbus

I would prefer to have small icons for the tabs too, not just text. We already have icons for most of the entries and we can find/create the rest for sure.
Also when adding text to the tabs you should check if it still works with the macos LaF as the tabs are different there, see #15570 and #14399.

comment:40 Changed 3 weeks ago by simon04

Owner: changed from team to simon04
Status: newassigned

comment:41 Changed 2 weeks ago by simon04

In 17159/josm:

see #7548 - Re-organize the preference dialog (display preferences)

Changed 2 weeks ago by simon04

comment:42 Changed 2 weeks ago by GerdP

The tab "Display Settings" is now empty.

comment:43 Changed 2 weeks ago by simon04

In 17160/josm:

see #7548 - Re-organize the preference dialog (connection preferences)

Changed 2 weeks ago by simon04

comment:44 Changed 2 weeks ago by simon04

In 17161/josm:

see #7548 - Re-organize the preference dialog (map preferences)

Changed 2 weeks ago by simon04

comment:45 Changed 2 weeks ago by simon04

In 17162/josm:

see #7548 - Re-organize the preference dialog (connection preferences)

Changed 2 weeks ago by simon04

Changed 2 weeks ago by simon04

comment:47 Changed 2 weeks ago by GerdP

I don't use any of the mentioned plugins. Does this explain the tab is empty?

comment:48 Changed 2 weeks ago by skyper

As the list on the left can get quite long now, especially with some plugins installed, are there any plans to have an option to fold all tab entries but the one in the active section?

comment:49 in reply to:  47 ; Changed 2 weeks ago by simon04

Replying to GerdP:

I don't use any of the mentioned plugins. Does this explain the tab is empty?

Yes.

Replying to skyper:

are there any plans to have an option to fold all tab entries but the one in the active section?

No, as this would make the whole reorganisation pointless (all entries should be directly accessible).

The icons could be smaller, such as:


Last edited 2 weeks ago by simon04 (previous) (diff)

Changed 2 weeks ago by simon04

comment:50 Changed 2 weeks ago by Don-vip

Summary: [β Patch] Re-organize the preference dialogRe-organize the preference dialog

comment:51 in reply to:  49 Changed 2 weeks ago by skyper

Replying to simon04:

Replying to skyper:

are there any plans to have an option to fold all tab entries but the one in the active section?

No, as this would make the whole reorganisation pointless (all entries should be directly accessible).

The icons could be smaller, such as:

Better, maybe, even centered for the group.

comment:52 Changed 2 weeks ago by Klumbumbus

I would go with:

  • an own 24px icon for every line on the left
  • left aligned text
  • no empty tabs

comment:53 Changed 2 weeks ago by simon04

In 17178/josm:

see #7548 - Re-organize the preference dialog (icons)

comment:54 in reply to:  52 ; Changed 2 weeks ago by simon04

Replying to Klumbumbus:

  • left aligned text

Not so easy, see https://stackoverflow.com/questions/26308859/jtabbedpane-tab-placement-set-to-left-but-icons-are-not-aligned for a rather complex solution. I'll look into that in depth later…

comment:55 Changed 2 weeks ago by simon04

In 17179/josm:

see #7548 - Re-organize the preference dialog (fix unit tests)

Changed 2 weeks ago by GerdP

Attachment: 7548-init.patch added

comment:56 Changed 2 weeks ago by GerdP

@Simon: During my work on #19876 I noticed that the DisplayPreferences tab was always initialized. Reason is that the ChangeListener reacts (too early) when javax.swing.JTabbedPane.insertTab(String title, Icon icon, Component component, String tip, int index) is called first time and this code is executed:

        if (pages.size() == 1) {
            setSelectedIndex(0);
        }

With the small patch the listener is added later and thus DisplayPreferences is not (wrongly) added to list settingsInitialized.

comment:57 in reply to:  56 Changed 2 weeks ago by simon04

Replying to GerdP:

@Simon: During my work on #19876 I noticed that the DisplayPreferences tab was always initialized.

Thanks for noticing. Please go ahead and commit your patch! :-)

comment:58 Changed 2 weeks ago by GerdP

In 17201/josm:

see #7548: Re-organize the preference dialog
Add addChangeListener later (7548-init.patch)

comment:59 Changed 13 days ago by GerdP

Just to make sure: I still don't see the content of the DisplayPreferences tab.

comment:60 in reply to:  59 Changed 13 days ago by skyper

Replying to GerdP:

Just to make sure: I still don't see the content of the DisplayPreferences tab.

Is there any content to be displayed? Think this and Map Settings are leftovers and only serve as titles right now.

comment:61 Changed 13 days ago by GerdP

Ahh! Very confusing, at least for me.
Why not remove the empty tabs? I would alse move the "language" tab into the "look and feel" panel.

comment:62 in reply to:  61 Changed 13 days ago by skyper

Replying to GerdP:

Ahh! Very confusing, at least for me.
Why not remove the empty tabs? I would alse move the "language" tab into the "look and feel" panel.

+1

The OSM-Server and Proxy settings tabs need a vertical scroll bar, if the content is not fully displayed.

comment:63 in reply to:  61 Changed 12 days ago by Klumbumbus

Replying to GerdP:

Why not remove the empty tabs?

See comment:46 for the reason and a possible solution.

comment:64 in reply to:  54 Changed 12 days ago by Klumbumbus

Replying to simon04:

Replying to Klumbumbus:

  • left aligned text

Not so easy, see https://stackoverflow.com/questions/26308859/jtabbedpane-tab-placement-set-to-left-but-icons-are-not-aligned for a rather complex solution. I'll look into that in depth later…

tbh if we can't find a solution for the left alignment we should revert this reorganization because the centered text really looks ugly and doesn't help at all to find the wanted tab faster. Or we move away from these tabs and use something different?
Some brainstorming (i.e. some other apps with icons in preferences):

Changed 12 days ago by GerdP

Attachment: prefs-with-search.png added

comment:65 Changed 12 days ago by GerdP

tbh if we can't find a solution for the left alignment we should revert this reorganization because the centered text really looks ugly and doesn't help at all to find the wanted tab faster.

+1

Or we move away from these tabs and use something different?

I think all preference dialogs have the same problem for newbes. Situation is this: User doesn't like a default behaviour and wonders if there is an option to change that. As long as they don't know the internal structure of the application they can only guess where such an option could be hidden. At that point in time the icons don't help me at all. Typically I look at the texts only at that time and maybe I remember the icon to find that setting faster next time.

In fact I prefer to use the filter in the expert preferences. It's like a very simple Google search.
The System settings in MS Windows were changed often and - I think - never to the better. Their best idea was to add the search function which simply lists possible links. Since that exists I don't have to care about the organisation.

comment:66 Changed 10 days ago by simon04

In 17227/josm:

see #7548 - Re-organize the preference dialog (remove "settings" from tab names)

comment:67 Changed 10 days ago by simon04

In 17228/josm:

see #7548 - Re-organize the preference dialog (left-align tab labels)

comment:68 Changed 10 days ago by simon04

In 17229/josm:

see #7548 - Re-organize the preference dialog (hide empty tabs)

comment:69 Changed 10 days ago by simon04

In 17231/josm:

see #7548 - Re-organize the preference dialog (add various icons)

Source of the language icon: https://github.com/FortAwesome/Font-Awesome/blob/5.15.1/svgs/solid/language.svg (CC BY 4.0)

comment:70 in reply to:  69 Changed 10 days ago by skyper

Replying to simon04:

In 17231/josm:

see #7548 - Re-organize the preference dialog (add various icons)

Source of the language icon: https://github.com/FortAwesome/Font-Awesome/blob/5.15.1/svgs/solid/language.svg (CC BY 4.0)

Few icon paths seem to be wrong. Thought we do not use file extensions and a regression in #19964.

comment:71 Changed 10 days ago by GerdP

I tried r17237 , press F12 directly after start and the display for OSM Data is still empty. I have to click on another tab and then again on the first to get its content.

comment:72 Changed 9 days ago by skyper

Yeap, same for me.

Is the file extension needed?

comment:73 Changed 8 days ago by Klumbumbus

In 17245/josm:

  • see #7548 - Change/add icons, remove file extension
  • ignore landform=dune_system

comment:74 in reply to:  67 Changed 8 days ago by Klumbumbus

Replying to simon04:

In 17228/josm:

see #7548 - Re-organize the preference dialog (left-align tab labels)

Great.

comment:75 Changed 8 days ago by Klumbumbus

I think we should

  • completeley remove the "Map" tab (MapPreference.java) as it is never displayed
  • rename the "Display" tab (DisplayPreference.java) to "Plugins", change its description and move the tab down after "Imagery".

comment:76 in reply to:  75 Changed 8 days ago by Klumbumbus

Replying to Klumbumbus:

  • rename the "Display" tab (DisplayPreference.java) to "Plugins"

Ah, no we already have a "Plugins" tab. So maybe "Plugins settings"? Or we change them to own tabs, not subtabs?

Changed 6 days ago by Don-vip

Attachment: display.png added

comment:77 Changed 6 days ago by Don-vip

I'm looking at #19968 and the colorscheme plugin preferences go into the "display" tab, this is weird:


comment:78 in reply to:  77 Changed 6 days ago by Klumbumbus

Replying to Don-vip:

I'm looking at #19968 and the colorscheme plugin preferences go into the "display" tab, this is weird:

"Colors" was previously a subtag of "Display" thats why "Color schemes" was a subtag of "Display" too. Now "Color schemes" makes more sense as a subtab of "Colors".

comment:79 Changed 6 days ago by Don-vip

@Simon ColorPreference.getTabPane() returns null so I can't add color schemes tab there. How do you want to address this?

Changed 6 days ago by Stereo

The preferences panel also looks very very weird on macOS in Java 15.

comment:80 Changed 6 days ago by Stereo

The preferences panel also looks very very weird on macOS in Java 15.

The preferences panel looking very very weird on macOS in Java 15.

Last edited 6 days ago by Stereo (previous) (diff)

comment:81 Changed 6 days ago by Don-vip

The Aqua L&F doesn't allow to get horizontal tabs. The time has probably come to move away from a tab-based panel to a list or tree-based one. We should also add a filter input text at the top allowing us to search for a preference by its name, like in many other applications.

comment:82 Changed 5 days ago by GerdP

In 17256/josm:

see #7548: Re-organize the preference dialog

  • Use setSelectedIndex(-1) to activate the filling of the first display

comment:83 in reply to:  81 ; Changed 4 days ago by simon04

Replying to Don-vip:

@Simon ColorPreference.getTabPane() returns null so I can't add color schemes tab there. How do you want to address this?

ColorPreference isn't instantiating a JTabbedPane in its constructor –

  • src/org/openstreetmap/josm/gui/preferences/display/ColorPreference.java

    diff --git a/src/org/openstreetmap/josm/gui/preferences/display/ColorPreference.java b/src/org/openstreetmap/josm/gui/preferences/display/ColorPreference.java
    index 45196fb3b..6ac830a4a 100644
    a b public PreferenceSetting createPreferenceSetting() { 
    8182
    8283    ColorPreference() {
    8384        super(/* ICON(preferences/) */ "color",
    84                 tr("Colors"), tr("Change colors used in program dialogs and in map paint styles."));
     85                tr("Colors"), tr("Change colors used in program dialogs and in map paint styles."), false, new JTabbedPane());
    8586    }
    8687
    8788    private ColorTableModel tableModel;

comment:84 Changed 4 days ago by Klumbumbus

There is a complie warning:

compile:
    [javac] Compiling 1633 source files to C:\Users\stefa\Documents\OSM\josm\core\build
    [javac] C:\Users\stefa\Documents\OSM\josm\core\src\org\openstreetmap\josm\gui\preferences\server\ProxyPreferencesPanel.java:182: warning: [UnusedVariable] The local variable 'gc' is never read.
    [javac]         GridBagConstraints gc = new GridBagConstraints();
    [javac]                            ^
    [javac]     (see https://errorprone.info/bugpattern/UnusedVariable)
    [javac]   Did you mean to remove this line or 'new GridBagConstraints();'?
    [javac] 1 warning

comment:85 in reply to:  82 Changed 4 days ago by Klumbumbus

Replying to GerdP:

In 17256/josm:

see #7548: Re-organize the preference dialog

  • Use setSelectedIndex(-1) to activate the filling of the first display

Now the Display tab is completely blank when opening the preferences.

comment:86 Changed 3 days ago by GerdP

In 17264/josm:

see #7548: Re-organize the preference dialog

  • revert r17256, doesn't help and maybe worsens the problem on some systems

comment:87 Changed 3 days ago by GerdP

Strange, I think it fixed the problem on my PC, but on my Laptop it is still there :(
So, I've revert it. On my Laptop this doesn't change anything.

comment:88 Changed 3 days ago by GerdP

On my machine it happens when F12 is pressed for the first time. If you chose another tab and then the first again the problem is gone (for that JOSM session). If you just chose another tab this is also opened again with that content.

comment:89 in reply to:  88 Changed 3 days ago by Klumbumbus

Replying to GerdP:

If you chose another tab and then the first again the problem is gone (for that JOSM session).

Yes that worked for me too in both versions, but is a bad workaround.

comment:90 Changed 3 days ago by GerdP

On my PC this work around doesn't work. Seems we have a race condition.

Changed 3 days ago by GerdP

Attachment: 7548-no-empty.patch added

@Klumbumbus Please try this patch. It solves the problem on both my PC and the laptop

comment:91 Changed 3 days ago by Klumbumbus

Yes that works fine for me.

comment:92 Changed 3 days ago by GerdP

In 17265/josm:

see #7548: Re-organize the preference dialog
Apply 7548-no-empty.patch to avoid empty top panel

  • make sure that a panel is selected when selectPreviouslySelectedPreferences() is called and nothing was previously selected
  • reverts r17097

comment:93 in reply to:  83 Changed 3 days ago by Don-vip

Replying to simon04:

Replying to Don-vip:

@Simon ColorPreference.getTabPane() returns null so I can't add color schemes tab there. How do you want to address this?

ColorPreference isn't instantiating a JTabbedPane in its constructor –

This isn't enough to make it being displayed. I think all preferences should define a tab pane. Those who currently have no tab pane should define their contents in the first tab named the same as preferences. Make the tab pane hidden if it contains only one tab, so that visually there is no difference between the current system and the new one, except this is expendable: all plugins can define new tabs everywhere, not only in the preferences where tabs are defined by JOSM core.

Changed 43 hours ago by Stereo

17265 macos

comment:94 Changed 43 hours ago by Stereo

17265 macos

It still looks unusable on macOS in 17265, Java 16. For some reason, opening the preferences gets me the Mapillary settings, too.

comment:95 Changed 43 hours ago by GerdP

I think the Mapillary dialog is intended, although I think that we should show a core dialog if nothing special was selected. OSM data would be my preference.

comment:96 Changed 36 hours ago by Don-vip

In 17271/josm:

see #7548 - remove unused variable

Modify Ticket

Change Properties
Set your email in Preferences
Action
as assigned The owner will remain simon04.
as The resolution will be set.
to The owner will be changed from simon04 to the specified user.
The owner will change to simon04
as duplicate The resolution will be set to duplicate.The specified ticket will be cross-referenced with this ticket

Add Comment


E-mail address and name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.