This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 200878 - Clean up Miscellaneous category in the Options dialog by creating a Java category
Summary: Clean up Miscellaneous category in the Options dialog by creating a Java cate...
Status: RESOLVED FIXED
Alias: None
Product: ide
Classification: Unclassified
Component: UI (show other bugs)
Version: 7.1
Hardware: All All
: P2 normal (vote)
Assignee: Theofanis Oikonomou
URL: http://wiki.netbeans.org/OptionsWindo...
Keywords: PLAN
: 207947 (view as bug list)
Depends on: 208745
Blocks:
  Show dependency tree
 
Reported: 2011-08-11 15:54 UTC by Petr Jiricka
Modified: 2012-02-22 23:35 UTC (History)
6 users (show)

See Also:
Issue Type: ENHANCEMENT
Exception Reporter:


Attachments
New module for Java panel in Otions window (12.48 KB, patch)
2012-01-26 15:44 UTC, Theofanis Oikonomou
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Petr Jiricka 2011-08-11 15:54:55 UTC
Currently, the Miscellaneous category in the IDE options is getting pretty crowded - it contains the following categories: Ant, Appearance, Diff, Files, Groovy, GUI Builder, Issue Tracking, Java Card, Java Debugger, Java ME, JavaScript, Maven, Profiler, Spellchecker, SVG, Tasks, Terminal, Versioning.

Especially on Mac OS X, the user experience is not very good, as the user needs to scroll left and right to see the tabs. I propose to clean it up by creating a top level Java category, and moving the following tabs from Miscellaneous to Java (they are all Java-specific):

Ant
GUI Builder
Java Card
Java Debugger
Java ME
Maven
Profiler

Besides cleaning up Miscellaneous, another benefit would be that all the main languages supported by the IDE would be on par - now we have a top-level category for C++ and PHP, but not Java. This change would improve consistency in this respect.
Comment 1 Antonin Nebuzelsky 2011-11-10 21:11:45 UTC
Jano, what is your take on this? Thanks.
Comment 2 jrojcek 2011-11-11 09:31:09 UTC
Makes sense to me. 

I would also suggest to:

Add a search bar into the header categories area as it would get more difficult to choose the right top level category.

Move fonts and color part of Terminal options under main Fonts and Colors.

Move Spellchecker under Editor.

Rename "Appearance" to "Windows".

The remaining categories in Miscellaneous would be:
Diff
Files
Groovy
Issue Tracking
JavaScript
SVG
Tasks
Terminal
Versioning
Windows

It would likely still not fit into a single row of tabs, so we should consider moving the tabs into a list on the left hand side.
Comment 3 Theofanis Oikonomou 2012-01-25 14:59:13 UTC
Most of the suggestions were adopted. 
Additionally, the color management UI elements of the Terminal options were changed to be similar with the UI elements under Fonts&Colors.

http://hg.netbeans.org/core-main/rev/2e9ebcdee1c1
Comment 4 Jesse Glick 2012-01-25 19:12:11 UTC
[JG01] WinSysOptionsPanelController.java - do not change IDs without a good reason. Change only display name.


[JG02] java/options/Bundle.properties etc. - consider using @Messages: - avoids the need for a separate Bundle.properties. (Editor hint available.)


[JG03] java/options/package-info.java - This is not workable. If java.kit is not installed & enabled, but some of these other modules (maven, say) are enabled, their options will not appear anywhere since there is no category definition for them. This can happen when certain Java-related modules are missing dependencies and have to be disabled, or if people are assembling an IDE-like application piecemeal but do not want everything in java.kit, etc.

You rather need to define the option category in a module which is, or could be, a dependency of all of the modules which would add suboptions to it. (api.java? or a new java.options?) This would be a good time to define a public Java constant for the category location "Java", probably via a friend API.
Comment 5 Alexander Simon 2012-01-25 19:42:08 UTC
[AS01] Please fix introduced i18n warnings:
lib.terminalemulator/src/org/netbeans/lib/terminalemulator/support/TermOptionsPanel.java:369:         foregroundComboBox.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
lib.terminalemulator/src/org/netbeans/lib/terminalemulator/support/TermOptionsPanel.java:391:         backgroundComboBox.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
lib.terminalemulator/src/org/netbeans/lib/terminalemulator/support/TermOptionsPanel.java:413:         selectionComboBox.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
Comment 6 Jesse Glick 2012-01-25 19:58:01 UTC
(In reply to comment #5)
> foregroundComboBox.setModel(new javax.swing.DefaultComboBoxModel(new
> String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));

I.e. open TermOptionsPanel in form view, select foregroundComboBox, right-click on model property, restore default value.
Comment 7 Vladimir Voskresensky 2012-01-26 11:29:26 UTC
(In reply to comment #6)
> (In reply to comment #5)
> > foregroundComboBox.setModel(new javax.swing.DefaultComboBoxModel(new
> > String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
> 
> I.e. open TermOptionsPanel in form view, select foregroundComboBox, right-click
> on model property, restore default value.

Already fixed
http://hg.netbeans.org/cnd-main/rev/f3a2369848cf
Comment 8 Theofanis Oikonomou 2012-01-26 13:51:07 UTC
(In reply to comment #4)
> [JG01] WinSysOptionsPanelController.java - do not change IDs without a good
> reason. Change only display name.
> 
> 
> [JG02] java/options/Bundle.properties etc. - consider using @Messages: - avoids
> the need for a separate Bundle.properties. (Editor hint available.)
> 

Fixed http://hg.netbeans.org/core-main/rev/60bfaeaabd76

> 
> [JG03] java/options/package-info.java - This is not workable. If java.kit is
> not installed & enabled, but some of these other modules (maven, say) are
> enabled, their options will not appear anywhere since there is no category
> definition for them. This can happen when certain Java-related modules are
> missing dependencies and have to be disabled, or if people are assembling an
> IDE-like application piecemeal but do not want everything in java.kit, etc.
> 
> You rather need to define the option category in a module which is, or could
> be, a dependency of all of the modules which would add suboptions to it.
> (api.java? or a new java.options?) This would be a good time to define a public
> Java constant for the category location "Java", probably via a friend API.

I will create a new module. 
I suppose that the Java constant will be used in maven/src/org/netbeans/modules/maven/execute/AbstractMavenExecutor, maven/src/org/netbeans/modules/maven/newproject/BasicPanelVisual and maven/src/org/netbeans/modules/maven/output/GlobalOutputProcessor in the place of OptionsDisplayer.ADVANCED. Is this the case?

(In reply to comment #7)
> Already fixed
> http://hg.netbeans.org/cnd-main/rev/f3a2369848cf

Thanks and sorry for the delay.
Comment 9 Theofanis Oikonomou 2012-01-26 15:44:42 UTC
Created attachment 115276 [details]
New module for Java panel in Otions window
Comment 10 Theofanis Oikonomou 2012-01-26 15:46:24 UTC
(In reply to comment #4)
> You rather need to define the option category in a module which is, or could
> be, a dependency of all of the modules which would add suboptions to it.
> (api.java? or a new java.options?) 

Created a new module options.java (and not java.options in order to be similar with options.editor, options.keymap ...) and added it to the java cluster

> This would be a good time to define a public
> Java constant for the category location "Java", probably via a friend API.

did that in options/java/api/JavaOptions

Jesse should I start a fast API review process?
Comment 11 Quality Engineering 2012-01-26 16:10:08 UTC
Integrated into 'main-golden', will be available in build *201201260600* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress)
Changeset: http://hg.netbeans.org/main/rev/074722049e5c
User: Theofanis Oikonomou <theofanis@netbeans.org>
Log: Issue #200878 - Clean up Miscellaneous category in the Options dialog by creating a Java category
Comment 12 Jesse Glick 2012-01-26 19:26:57 UTC
(In reply to comment #8)
> I suppose that the Java constant will be used in
> maven/src/org/netbeans/modules/maven/execute/AbstractMavenExecutor,
> maven/src/org/netbeans/modules/maven/newproject/BasicPanelVisual and
> maven/src/org/netbeans/modules/maven/output/GlobalOutputProcessor in the place
> of OptionsDisplayer.ADVANCED. Is this the case?

Yes, good catch.

(In reply to comment #10)
> should I start a fast API review process?

You could, though I am not sure it is needed for a friend API like this.

You forgot to use the new constant in package-info.java:

  id = JavaOptions.JAVA
Comment 13 Theofanis Oikonomou 2012-01-27 09:40:19 UTC
Fixed 

http://hg.netbeans.org/core-main/rev/29d7471f2fa6
Comment 14 Jesse Glick 2012-01-30 23:02:01 UTC
You left now-unnecessary compile dependencies in java.kit/nbproject/project.xml.
Comment 15 Theofanis Oikonomou 2012-01-31 09:56:41 UTC
Sorry I missed that. Removed the dependencies

http://hg.netbeans.org/core-main/rev/2540ab1ba683
Comment 16 Jesse Glick 2012-01-31 17:47:03 UTC
*** Bug 207947 has been marked as a duplicate of this bug. ***
Comment 17 Theofanis Oikonomou 2012-02-02 14:46:25 UTC
Updated the Java icon

http://hg.netbeans.org/core-main/rev/4a4ae86ecf81