Wizard API - Plan of redesign
This is preliminary plan forWizard API
redesign in core
platform.The plan defines:
- highlevel areas,
- tasks in detail for each area,
- milestones in which the plan can be implemented.
If there is no status or owner mentioned it means that no work was done yet and task is not planned yet.
The tasks in issuezilla hasn't be filed yet, will be made soon.
Highlevel Areas
TheWizard API
redesign plan can be split into these highlevel areas:- A1: Propose Wizard API
Prototype API&SPI, discuss and reflecting changes and pass the standard Architecture review.
- A2: Changes in Templates management
Prototype new Templates management (w/o old datasystems) and new wizard built on the top ofWizard API
.
- B1: Migrate to Wizard API
Implement NetBeans wizard default implementation and all core module's usages of oldWizardDescriptor
should be rewritten to use new Wizard API.
- B2: Create new TemplateWizard implementation
Implement newTemplateWizard
implementation with new templates management.
- C1: Provide examples how to use Wizard API
Provide examples how to useWizard API
features use the supported use-cases, write Migration guide from old wizard's implementation toWizard API
.
Areas in more detail
A1: Propose Wizard API
- A1.1: create proposal for the module and its public API
&SPI
Status: in progress.
Comment: TheWizard API
is available on openide/wizards on branch .
- A1.2: create prototype for all
the supported use-cases
Comment: prototypes are available on openide/wizards/prototype on branch .
- A1.4.1: document all API contracts
- A1.4.2: completing API documentation
IssueZilla: 36584
Owner: jrechtacek@netbeans.org
Dependencies:
A1.3 and A1.4 depends on A1.2,
A1.4 also depends on A2.5, A1.4 and A1.5 wait to each other.
A2: Changes in Templates management
- A2.1: Propose a concept of Templates management
Owner: pnejedly@netbeans.org
Owner: jrechtacek@netbeans.org
IssueZilla: 36709
Owner: pnejedly@netbeans.org
IssueZilla: 36709
Owner: pnejedly@netbeans.org
Dependencies:
A2.5 depends on A1.2,
A2.3 depends on A2.1,
A2.4 depends on A2.3.
B1: Migrate to Wizard API
Implement NetBeans wizard default implementation and all core module's usages of oldWizardDescriptor
should be rewritten to use new Wizard API.
- B1.1: Create default NetBeans WizardUI
- B1.1.1: Provide NetBeans
WizardUI
customization API - B1.1.2: Implement default NetBeans
WizardUI
Dependencies:
B1.1 depends on A1.2,
B1.2 depends on A1.4 and B1.1,
B1.3 depends on B1.2.
B2: Create new TemplateWizard implementation
ImplementTemplateWizard
separated from old datasystems
(package org.openide.loaders
) uses proposed Templates registration.
Also document how to migrate
- B2.1: Create TemplateWizard and prepare shared wizard's pages
- B2.1.1: Prepare shared wizard's page e.g. TemplateChooser. TargetChooser
Wizard API
Dependencies:
B2.1.1 depends on A2.1,
B2.1.2 depends on A2.3,
B2.2 depends on A2.4.
C1: Provide examples how to use Wizard API
Write code examples built on the topWizard API
, write User view
how to use this API and provide support on mailing lists and internally to help
use this API.- C1.1: Write code examples demonstrates API features
Dependencies:
C1.1 depends on all above,
C1.2 depends on B1.3.
Milestones
The above tasks can be grouped into these milestones.M1: Wizard API - basic implementation ready
- finish A1.2
- Note: Merge
Wizard API
to main trunk asdevel
. - status: in progress
- Expected date: postponed (new date will be TBD)
M2: Pass Architecture Review
- finish A1.5
- depends on: M1 and Architecture reviewers
- Note: Deprecate
WizardDescriptor
. - status: in progress
- Expected date: postponed (new date will be TBD)
M3: New Templates - basic management ready
- finish A2.5
- status: not in progress but must be started soon
- Expected date: postponed (new date will be TBD)
M4: Core's wizards migrated - full implementation Wizard API
- depends on: M1
- finish B1.2
- Expected date: postponed (new date will be TBD)
M5: New Templates - full implementation TemplatesWizard ready
- depends on: M3, M4
- finish B2.2
- Expected date:
M5: API documentation and examples ready
- depends on: M3, M5
- finish B1.3, B2.3 and C1.2
- Expected date: