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 184908 - Move font config to Fonts & Color
Summary: Move font config to Fonts & Color
Status: RESOLVED FIXED
Alias: None
Product: platform
Classification: Unclassified
Component: Output Window (show other bugs)
Version: 6.x
Hardware: PC Other
: P3 normal with 1 vote (vote)
Assignee: Jaroslav Havlin
URL:
Keywords:
: 185217 (view as bug list)
Depends on:
Blocks:
 
Reported: 2010-04-24 15:51 UTC by hantsy
Modified: 2012-09-05 07:49 UTC (History)
2 users (show)

See Also:
Issue Type: DEFECT
Exception Reporter:


Attachments
Screenshot - new UI and colored output (92.08 KB, patch)
2012-08-29 14:55 UTC, Jaroslav Havlin
Details | Diff
Patch - Proposed Implementation (111.83 KB, patch)
2012-08-29 14:57 UTC, Jaroslav Havlin
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description hantsy 2010-04-24 15:51:26 UTC
Please move the font config in output window to the Fonts & Color option panel...
Provide the following basic config :
1. font size.(can inherit from IDE default)
2. backgroud and forgroud color.
3. different color for infomation serverity(for warnging, error)
4. link color and style(underline etc)
Comment 1 Martin Entlicher 2011-01-09 10:09:35 UTC
*** Bug 185217 has been marked as a duplicate of this bug. ***
Comment 2 Jaroslav Havlin 2012-07-30 08:28:47 UTC
Petr, could you please help me evaluate this bug? Can you see any problems in moving Output Window settings to Options panel, from the UI perspective?

Where in Fonts & Colors category should the new settings be. In "Syntax" tab (is it semantically correct), or in a new tab called "Output" (is adding another tab a good idea)?

Another question is whether it should be allowed to remap ANSI colors (provided by external applications) to custom colors.

Thank you.
Comment 3 javydreamercsw 2012-08-01 15:10:17 UTC
This probably would be an enhancement instead.

As long as this defines the defaults I do agree. It shouldn't override the settings for created IO providers.
Comment 4 ivan 2012-08-01 19:01:02 UTC
Please note that there's also a "Terminal" configuration API and UI.
It's visible under Options->Misc->terminal. The code is here:
lib.terminalemulator/src/org/netbeans/lib/terminalemulator/support
Comment 5 Petr Somol 2012-08-02 13:56:05 UTC
After a discussion with jhavlin this morning we agreed to:
- move appearance settings to new tab "Output" under Fonts & Colors + create another tab "Output" under Miscellaneous to gather non-appearance options, like the following
- new option "Limit Output buffer size" as checkbox, checking enables text field for entering numerical limit
- Output tabs under Fonts&Colors and Miscellaneous will refer to each other by buttons: "Other Options" in one way and "Fonts & Colors Options" in the other way.
- the same split of options to two tabs should be done with Terminal
- harmonize keyboard/mouse shortcuts with editor (resolve conflicts by reusing the editor ones)
- more control over font settings and color per displayed text type will be added

The argument for the split is as follows:
- gathering of Fonts&Colors settings in one place is advantageous
- settings under Fonts&Colors are per-profile, what would not be the case if fonts and colors setting for Output window were gathered with non-appearance options elsewhere (this is now the case of Terminal)
- the disadvantage of having two tabs for the same object can be mitigated by adding the "referencing" buttons to each tab
Comment 6 ivan 2012-08-02 18:34:22 UTC
(In reply to comment #5)
> After a discussion with jhavlin this morning we agreed to:
> - move appearance settings to new tab "Output" under Fonts & Colors + create
> another tab "Output" under Miscellaneous to gather non-appearance options, like
> the following
> - new option "Limit Output buffer size" as checkbox, checking enables text
> field for entering numerical limit
> - Output tabs under Fonts&Colors and Miscellaneous will refer to each other by
> buttons: "Other Options" in one way and "Fonts & Colors Options" in the other
> way.

Why should the tabs in Misc exclude fonts and colors? 
Think MVC ... the model includes lots of stuff. One view only deals
with fonts and colors, the other is more comprehensive.

> - the same split of options to two tabs should be done with Terminal

Not sure what you mean here.
Will these be additional tabs?
Why not have a common UI and notificaton and have each OutputProvider
field and implement it in it's own way?

    One answer is that the constraints on the UI options for each impl are
    sufficiently different that it would be hard to achieve.



> - harmonize keyboard/mouse shortcuts with editor (resolve conflicts by reusing
> the editor ones)
> - more control over font settings and color per displayed text type will be
> added
> 
> The argument for the split is as follows:
> - gathering of Fonts&Colors settings in one place is advantageous
> - settings under Fonts&Colors are per-profile, what would not be the case if
> fonts and colors setting for Output window were gathered with non-appearance
> options elsewhere (this is now the case of Terminal)
> - the disadvantage of having two tabs for the same object can be mitigated by
> adding the "referencing" buttons to each tab
Comment 7 ivan 2012-08-02 18:38:00 UTC
 
> Not sure what you mean here.
> Will these be additional tabs?
> Why not have a common UI and notificaton and have each OutputProvider
> field and implement it in it's own way?
> 
>     One answer is that the constraints on the UI options for each impl are
>     sufficiently different that it would be hard to achieve.
>

<sent prematurely>
A more stringent constraint of the Terminal is thatit only works with fixed
width fonts and it's chooser is specialized for this. This means that
it won't be able to conform to the generic font choosing UI in F&C.

> 
> 
> 
> > - harmonize keyboard/mouse shortcuts with editor (resolve conflicts by reusing
> > the editor ones)
> > - more control over font settings and color per displayed text type will be
> > added

Keep in mind the enhanced terminal OutputProvider APIs' which also lend 
control over colors. In general there should be default colors and
"current",programmatically settable, colors?
Comment 8 Jaroslav Havlin 2012-08-03 10:28:47 UTC
> Why should the tabs in Misc exclude fonts and colors? 
> Think MVC ... the model includes lots of stuff. One view only deals
> with fonts and colors, the other is more comprehensive.
We didn't discuss this solution too much. I think that duplication of controls makes the tabs in Miscellaneous more complicated than needed, but I am not sure what would the users prefer more.
If someone wants to change colors, they would probably open Fonts & Colors category first. If they want to change Tab size, they would probably end up in "Miscellaneous", as there is no better category.
Of course this is only my assumption, I'm not really sure.

> > - the same split of options to two tabs should be done with Terminal
> 
> Not sure what you mean here.
> Will these be additional tabs?
Yes, to stay consistent, if the font/colors settings and other settings of Output are in corresponding sections (F&C, Misc.), terminal should have its
tab in F&C category as well.

> Why not have a common UI and notificaton and have each OutputProvider
> field and implement it in it's own way?
You mean having one tab in Misc. category for all OutputProviders?
 
> <sent prematurely>
> A more stringent constraint of the Terminal is thatit only works with fixed
> width fonts and it's chooser is specialized for this. This means that
> it won't be able to conform to the generic font choosing UI in F&C.
Yes, a new tab in F&C would be needed.

> Keep in mind the enhanced terminal OutputProvider APIs' which also lend 
> control over colors. In general there should be default colors and
> "current",programmatically settable, colors?
Users should configure default colors, but they can still be programmatically changed, e.g. with IOColors.


Another problem is that plugging into Fonts & Colors panel is not easy.
Interface FontsColorsController is in module options.editor, which is in cluster ide. Module core.output2 is in cluster platform.

Solutions are:
 - Create a new module options.output in cluster ide
   (platform applications without this cluster wouldn't be able to use it)
 - Move options.editor to platform
   (probably complicated).
 - Have only one tab in Miscellaneous section
   (maybe incorrect from the UI perspective)

What is your opinion? Thank you.
Comment 9 ivan 2012-08-03 19:30:47 UTC
(In reply to comment #8)

> > Why not have a common UI and notificaton and have each OutputProvider
> > field and implement it in it's own way?
> You mean having one tab in Misc. category for all OutputProviders?

Yes, that's what I meant, but of course it's a challenge.

> > Keep in mind the enhanced terminal OutputProvider APIs' which also lend 
> > control over colors. In general there should be default colors and
> > "current",programmatically settable, colors?
> Users should configure default colors, but they can still be programmatically
> changed, e.g. with IOColors.

My concern is that the current IO API's may not distinguish between
current and default colors.
Unlike the editors output windows can have their color changed by their
input. The current Terminal options UI doesn't really do justice to this
either, but it hasn't been a problem.
But then this will all matter only if we want to create a generic interface.

> 
> 
> Another problem is that plugging into Fonts & Colors panel is not easy.
> Interface FontsColorsController is in module options.editor, which is in
> cluster ide. Module core.output2 is in cluster platform.
> 

It seems to me the problem is even bigger than that because the whole UI for
F&C won't be available in platform.
Comment 10 Jaroslav Havlin 2012-08-29 14:41:35 UTC
(In reply to comment #9)
> > > Why not have a common UI and notificaton and have each OutputProvider
> > > field and implement it in it's own way?
> > You mean having one tab in Misc. category for all OutputProviders?
> 
> Yes, that's what I meant, but of course it's a challenge.

I'm afraid it is a too big challenge. The purpose of the two windows is too different, although they implement the same interface.
Having separate tabs for both of implementations will hopefully also make the settings more discoverable for the users.

> > Another problem is that plugging into Fonts & Colors panel is not easy.
> > Interface FontsColorsController is in module options.editor, which is in
> > cluster ide. Module core.output2 is in cluster platform.
> > 
> 
> It seems to me the problem is even bigger than that because the whole UI for
> F&C won't be available in platform.

Yes, it is a big problem. Putting all setting to the Miscellaneous section.
Comment 11 Jaroslav Havlin 2012-08-29 14:55:50 UTC
Created attachment 123706 [details]
Screenshot - new UI and colored output

Attaching a screenshot of the new settings panel.

Can you please check it? Thank you.
Comment 12 Jaroslav Havlin 2012-08-29 14:57:00 UTC
Created attachment 123707 [details]
Patch - Proposed Implementation
Comment 13 Jaroslav Havlin 2012-08-31 10:43:52 UTC
(In reply to comment #12)
> Created attachment 123707 [details]
> Patch - Proposed Implementation

Integrated as http://hg.netbeans.org/core-main/rev/a2fd21c71c72
Comment 14 Quality Engineering 2012-09-02 01:27:42 UTC
Integrated into 'main-golden', will be available in build *201209020001* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress)
Changeset: http://hg.netbeans.org/main-golden/rev/a2fd21c71c72
User: Jaroslav Havlin <jhavlin@netbeans.org>
Log: #184908: Settings panel for Output
Comment 15 Quality Engineering 2012-09-04 01:09:07 UTC
Integrated into 'main-golden', will be available in build *201209040001* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress)
Changeset: http://hg.netbeans.org/main-golden/rev/dd900119711c
User: Jaroslav Havlin <jhavlin@netbeans.org>
Log: #184908: Settings panel for Output; re-pushing after 6138ecd316d1