How to Dynamically Add Panels to a Panel Navigator
Description
Panels (Panel Cards, Panel Layouts, and child Panel Navigators) can be dynamically added to a Panel Navigator at run-time.
Discussion
When you create UX component that uses a Panel Navigator, the Panels (Cards, Layouts, and child Navigators) in the Panel Navigator are usually created at design-time. It is not required, however, that the Panels in a Panel Navigator be created at design-time.
You can create Panels at run-time and dynamically add them to the Panel Navigator. The Panel Navigator's .addPanel() method can be called to add Panels. Similarly, you can remove Panels from a Panel Navigator at run-time.
function addPanel() { var id = {dialog.object}.getValue('panelNum'); if (id == '') { alert('Please type a number in the textbox before clicking the button'); return false; } //specify a unique name for the new Panel var panelName = 'NEWPANEL_' + id; var panelTitle = 'Pane ' + id; //define a new Panel Card var myNewPanelCard = new A5.PanelCard({ theme : '{dialog.style}', body: { content: { type: 'html', src: 'this is my new panel text for: ' + panelName } } }); //get a pointer to the Panel Navigator where the new Panel will be added var pNav = {dialog.object}.panelGet('PANELNAVIGATOR_1'); //add the new Panel Card to the Panel Navigator pNav.addPanel({ name: panelName, title: panelTitle, src: myNewPanelCard }); //optionally, set focus to the new Panel pNav.setActivePanel(panelName); }
Watch the video below to learn more about how to dynamically add Panels to a Panel Navigator.
Click here to download the component shown in the videos above.