With the release 8.55 People
Tools has introduced new page types namely Side Page 1 and Side Page 2. These
pages are a good replacement technique to the old method of having a complex
two panel layout. With the introduction of side pages, it is easy to manage the
navigation or other supplemental pages in a component. These pages act as a
standalone object and could be added to the component like any other standard
pages. The moment these pages are added, the component starts displaying the side
panel pages (left panel or right panel) and it does not require additional styling
or coding. In version 8.54 the toggling between the side pages and main pages
were handled with the help of certain derived functions present on the people
code event PT_TWOPNL_WRK.BUTTON.FieldFormula.
The toggle switch you see on the
two panel layout was an actual button field present on the page, style of which
was controlled to work as the side panel pull switch. However with the side
page concept of 8.55 onwards, the field button is not part of the application
pages and these functions may not work as expected.
With 8.55 onward the inbuilt
logic to control the appearance of the fluid components is delivered in
application packages. People Tools is
delivering an application package PT_PAGE_UTILS which contains classes to
control the general behavior of fluid components. In that application package
there is a Application Class named PanelController which can be used to control
the behavior of Side Pages in a two, three or four panel page designs.
The application class consists of
methods which could be invoked to set the behavior of the side pages. The
methods that consists the names Side1 can be used to control the Side Page 1
(Left Panel). Similarly the methods that consists the name Side2 can be used to
control the Side Page 2 (Right Panel).
Almost all the methods are pretty
much self explanatory so that reading the method name will give you a fair idea
of what that method is intended to do. Some methods such as SetSide1Enabled()
expects an input Boolean value to decide whether the property that need to be
set is Enabled/Disabled. There are
couple of method which will control advanced properties. For example using the
method UsePersistentOpenModeSide1(True) will
keep the left side panel always open regardless of the size of the browser
window. It will also keep the left panel open even if the user has selected an
item from the left panel navigation list.
These methods will be handy when
you have to code the side panel to behave differently in different devices.
For example, the below piece of
code will open the side panel by default if the component is rendered on a
large form factor device.
import PT_PAGE_UTILS:PanelController;
Local PT_PAGE_UTILS:PanelController &objPage;
&objPage = create PT_PAGE_UTILS:PanelController();
If %Request.BrowserDeviceFormFactor = %FormFactor_Large
Then
&objPage.Initialize( False);
&objPage.SetSide1OpenState( True);
&objPage.UpdatePanel();
End-If;