1. Todor Todorov
  2. PowerBuilder
  3. Wednesday, 24 June 2020 16:57 PM UTC

Hi everyone,

I have an old application with an outdated UI that needs to be modernized.
On start up, this application shows a small window with multiple buttons (as Accounting, Human Resources, etc).
Clicking on a button will open a new window with a dedicated functionality.
The plan is to replace this navigation-like main window with an MDI frame with a RibbonBar.
All other windows will be same for both old and new UIs.
The problem is that some users are so used to the old UI that they don't want the new UI.

Is there a way to support both UIs and switch to either old or new UI on application startup?
I'm a PowerBuilder novice, any help is greatly appreciated!

Kevin Ridley Accepted Answer Pending Moderation
  1. Wednesday, 24 June 2020 17:07 PM UTC
  2. PowerBuilder
  3. # 1

One thing you can do which wouldn't require supporting 2 different code bases would be to implement themes with PB2019.  You can let the user pick standard Appeon themes, implement your own custom theme, or they can use no theme and still have only 1 code base.

Comment
There are no comments made yet.
Chris Pollach @Appeon Accepted Answer Pending Moderation
  1. Wednesday, 24 June 2020 17:32 PM UTC
  2. PowerBuilder
  3. # 2

Hi Todor;

    FWIW:  I normally provide an option on the Login dialogue as to the UI the user would like to use. Then open either UI#1 MDI Frame or UI#2 MDI Frame based on their selection. Then remember that default in an IN file for the next App start-up sequence.

Regards ... Chris

Comment
  1. Todor Todorov
  2. Wednesday, 24 June 2020 17:48 PM UTC
Hi Chris,



I'm thinking in the same direction. The challenge for me is implementing the logic that shows either UI on startup based on that setting from the INI file. Can you provide an example code for such a logic?



Thanks!

  1. Helpful
There are no comments made yet.
Chris Pollach @Appeon Accepted Answer Pending Moderation
  1. Wednesday, 24 June 2020 18:14 PM UTC
  2. PowerBuilder
  3. # 3

Hi Todor;

  Here is an example from my Framework. A GUI prompt...

Run time control example ....

 

Note that the framework automatically handles the user's current App language and instantiates the appropriate MDI frame's "name + language suffix". Also, you could extend this approach to "wn_xxxxxxxx_ribbon" or even wn_xxxxxx_mobile" / "wn_xxxxxx_web" for that matter - for even more GUI options / control.

 

No matter what GUI is initially selected by the user, I then allow the App user to pick their theme (PB2019 & higher) in a native App, as follows:

 

If you choose "Dockable" from the Login Screen, you get ...

 

Food for thought.  HTH

Regards ... Chris

Comment
  1. Chris Pollach @Appeon
  2. Thursday, 25 June 2020 19:17 PM UTC
Absolutely ... My framework DEMO App demonstrates this. However, the command OpenXxxxxx() that opens the MAIN windows changes in my case depending on the frame type (MDI vs MDI Dockable). In your case, the OpenXxxx() commands should be the same as your still using a standard MDI Window. However the MDI Frame needs to adjust the "WorkSpace" (MDI_1) to account for the Ribbon Bar 's real-estate (see PB Help documentation)
  1. Helpful
  1. Todor Todorov
  2. Thursday, 25 June 2020 21:14 PM UTC
Is your 'framework DEMO App' available somewhere on the internet? If so, can you please provide a link?

Thanks!
  1. Helpful
There are no comments made yet.
Brad Wery Accepted Answer Pending Moderation
  1. Thursday, 25 June 2020 14:39 PM UTC
  2. PowerBuilder
  3. # 4

Hello Todor,

With Ultimate Suite for PowerBuilder (pbultimatesuite.com), you would be able to do a lot of modernizing and still be able to switch to the old UI. For example, with PowerMenu (a ribbon version of the PB menu), you can inherit from your current Frame window, then "inject" the PowerMenu ribbon window to get a ribbon based on your existing Frame. You can then inherit from your existing frame menu and add all the PowerMenu attributes to the new menu.

----------------         ------------------------------------------         -----------------------
| w_frame |   -->  | w_ribbonwindow_advanced  |  -->   | w_newframe   |
----------------         ------------------------------------------         -----------------------
       |                                                                               |
      V                                                                              V
------------------------                                                 -------------------------------
| m_framemenu |     ----------------------------------->       | m_newframemenu  |
------------------------                                                 -------------------------------

 

With this approach, you will have your existing Frame and Menu that you can load if the users want the older look. Or, you can open the new inherited Frame window that's based on PowerMenu if your users want the updated look. There would be pretty much no rework of the code.

 

 

Comment
There are no comments made yet.
Todor Todorov Accepted Answer Pending Moderation
  1. Thursday, 25 June 2020 16:30 PM UTC
  2. PowerBuilder
  3. # 5

Thanks

Comment
There are no comments made yet.
  • Page :
  • 1


There are no replies made for this question yet.
However, you are not allowed to reply to this question.