cornercorner
FeaturesPluginsDocs & SupportCommunityPartners

PlanForDesignerRegsOnPlatform

Plan for satisfying Designer reqs on NB Platform

Goal

Designer is building on top of NetBeans Platform. Specific requirements are identified and will be implemented in the Platform according to this plan. Implementation of the requirements will be beneficial not only to Designer but also to any other application building on top of the Platform.

List of requirements

Window System reqs

Window System requirements to satisfy the needs of the Designer UI Spec.

  • transparency of windows in DnD - #123110
  • new tab layout in modes (aka groups) - #123114
  • DnD of whole modes (aka groups) - #123118
  • indication of DnD drop target - #36030
  • window snapping of floating windows - #123124
  • run smoothly on Nimbus L&F - #120656
  • add option in Options to turn the effects on/off - #123125
  • Merging of Floating windows - #127394
  • Custom sliding bar look - #127395

Schedule

Task Owner Deadline Dependencies Notes
Conversion to Mercurial Dafe start of Feb 2008
(completed)
Convert "winsysfx" CVS branch into new Mercurial repository. Ask RE to create new Hg repository on Netbeans Hg server, called "core-winsysfx"
Winsys customizations module Dafe Feb 1
(completed)
Create "Window System Customizations" module where API and SPI for customization and handling of platform winsys will exist.
DesktopView and RegionView Dafe Feb 1
(completed)
Depends on winsys customs module creation Create API to allow Designer or other platform clients to provide own implementation of main window inner area (DesktopView) and impl of tabbed container (RegionView)
JNA API review Standa Feb 21 (completed) Update JNA library wrapper module, create API for setting window transparency, submit and go through API review process
JNA in build (#126848) Standa Feb 21 (completed) Depends on JNA API review Inclusion of JNA module in standard build, in core-winsysfx repository, packaging for Linux distros
DnD "ghost" image and API (#123110) Standa Feb 21 (completed - without public API) Depends on JNA in build Implement nice transparent ghost image during DnD. Create API to control it - enable/disable ghost image, full sized or limited size ghost image, darkening of ghost image when DnD is not possible.
Floating Snapping and API ( #123124) Standa Feb 21 (completed - without public API) Snapping of floating windows, controlling API for enable/disable of this feature, enable/disable snap to main window, set size of active snap areas.
Dialog in options (#123125) Standa/Dafe Feb 21 (completed - no dialog said HIE) Add dialog to platform Tools/Options to enable setting of effect levels and various other settings described in other tasks.
Proof of concept - API tests - JDesktopPane and JTabbedPane integration (related: #123114) Dafe March 14 (in progress) Depends on DesktopView, RegionView existence Implement integration of JDesktopPane and JTabbedPane into platform winsys through new APIs. Use this integration in unit tests of new API and as proof of concept.
Custom decorations API end of March/start of April Winsys customs module existence Create API to allow platform clients to use undecorated floating windows and provide own window decorations. Will be a part of winsys customs module.
Use RegionView and custom decoration Designer team not sooner then end of March RegionView API, custom decorations API Create implementation of RegionView and usage of other APIs on Designer team side, to actually plug their tabbed component and window decorations into platform window system.
Sliding size policies API Allow platform clients to specify sizing policies, so that slided windows will have the size according to their preferred size.
Sliding windows enable / disable API
(+ DnD on/off, fixed size on/off)
Allow platform clients to enable or disable sliding windows feature on individual sides of main window independently.
Resize policies API Support minimum/maximum size of window components, support (multiple) preferred sizes, support resizing in discrete steps larger than 1.
Level of effects API Standa Create API to control level of effects in platform, similarly like they work in Compiz-Fusion. None, Normal, Extra and custom levels.
Fix Nimbus (#120656) Marek end of March (in progress) Depends on Swing L&F team Fix bugs either in platform or in java Nimbus L&F to run platform smoothly under Nimbus L&F.
DnD of multiple TopComponents (#123118) Implement support for DnDing of multiple TCs at once. Modify standard platform view tabs, add dragger place. Solve closing of whole group/mode.
Overall Customs API review Dafe All customs APIs Write documentation, submit and go through full API review process of window system customization module APIs, mentioned above.
Merging of Floating windows (#127394) Custom decorations API, Floating Snapping Implement feature of "merging" two floating windows into one, so that they move together and are more tightly coupled then just snapping.
Indication of DnD drop target (#36030) both we and Designer team DesktopView and RegionView API Provide visually pleasing indication of DnD drop target, which means window and tab animation that will make "space" for drop target and draws its "ghost" stamp in target location. Risk: it is implementation intensive, maybe too much.
Custom sliding bar look (#127395) Create different look of sliding bars according to Designer spec or provide API to allow customize slide bar look completely.
Adopt Designer tabs and desktop Take implementations of Designer desktop and tabs and integrate these into platform code, probably in winsys customs module. Ensure they look OK under any L&F that platform supports.
Support in apisupport module Depends nearly on all Add support for winsys customs module in apisupport module. Platform clients should be able to choose from desktop layout types, tabded region layout types and control other mentioned customizations like sliding, snapping, Dnd.
Mac OS specific issues depends on Designer UI spec E.g. better integration of floating/sliding windows with Mac OS environment


Dependencies

  • OSR 7755 - inclusion of LGPL'ed JNA library in the platform - approved

Risks

Risk description Owner Probability Impact Mitigation plan
Design of the whole tool and mainly animation timeline and drawing is still in progress. It will likely impact content of the windows, layout, it should not impact the concept of window system but we cannot guarantee that. Martin R. 0.1 5 Updated requirements, schedula adjustment


Priorities

Priority Required for Deliverables
P1 Start of migration DesktopView and RegionView, Floating Snapping and API, Custom decorations API, Sliding size policies API, Sliding windows enable / disable API, Resize policies API, Mac OS specific issues
P2 Important for the visual experience DnD of multiple TopComponents, Merging of Floating windows, Custom sliding bar look, DnD "ghost" image and API
P3 The rest


Designer milestones

Milestone Feature freeze Stabilization Note
M2 Apr/14 Apr/14-18 Current window system
M3 May/26 May/26-30 Migration to the NB Window system, all P1 tasks must be finished by May/12


Links