OutputWindowIssuesAndReqs

Revision as of 15:22, 5 November 2009 by Admin (Talk | contribs)
(diff) ← Older revision | Current revision (diff) | Newer revision → (diff)

Output Window issues and requirements

Contents


Motivation

There is currently a lot of pending issues (70+) for Output Window. Some of them require API changes, for others is not clear whether they can be solved without significant changes to current implementation, some requirements go directly against each other. This document is first step for decision in which direction OW should go.

Description

Current implementation

Current implementation of Output Window was designed for max. throughput and scalability. Maximum amount of text OW can handle is 2GB. Despite of this rather high limit which should be enough for most use cases there were various performance issues for very long lines (e.g. several MB, see Issue #90267 for common use cases) for both wrapped and unwrapped modes. These problems were solved by limiting maximum line length in unwrapped mode (where correct expansion of tabs is performed) and fixing various issues in wrapped mode. However, there are some inherent limitations in wrapped mode which allows displaying of such long lines without performance hit. These are non-proportional (fixed char width) font and disabling of tabs characters expansion. This allows to quickly navigate in very long lines without need to call getTabbedTextWidth() for whole line. One of issue with most duplicates is request for possibility to choose any font (also proportional) in OW. This requirement goes directly against optimization for wrapped lines. Solution could be to allow any font in unwrapped mode and restrict wrapped mode to non-proportional fonts (in fact effective wrapped mode requires just fixed number of characters per line so in principal there could be any font too but it would negate the reason for proportional font - more chars per line and better appearance).

Issues which require API changes

These issues are explicit API change requests or new functionalities which should also be included in some form to API:

  • Issue #43165 - Unable to change the font properties of the Output (many duplicates)
  • Issue #55151 - Output Window should have a settable history-length
  • Issue #58633 - Provide API for creating custom output components
  • Issue #60862 - Provide an API for adding icon in the output window tab
  • Issue #65215 - Output window should have a filter/grep funcionality
  • Issue #82647 - Support programmatically scrolling output window to a line with an output listener
  • Issue #89852 - API which notifies new events in the output windows


Tab management

Issues for "terminal behavior"

There is whole set of problems which is caused by insufficient support in OW for "console" use cases. Mainly \n, \r are not handled correctly as well as mixing of stdin and stdout. It is necessary to evaluate if it is possible to implement sufficient "terminal-like" behavior to current implementation or if these use cases should be covered by other implementation. Currently pending issues:

Not logged in. Log in, Register

By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2012, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo