Wish Make B4J B4xPages MDI

MrKim

Well-Known Member
Licensed User
Longtime User

About the Multiple Document Interface

A don't know how difficult this would be to implement but It would be much easier (and more consistent for users working the same app on multiple platforms) if we could build the B4J version of a B4XPages app if it could be done as an MDI app. All pages would be in the same container, maximized each page would remain the size of the container.

Edit: There seems to be some confusion about what an MDI app is. Here is an excellent explanation.
FYI MS Access is an MDI app so is .
And a little more research... Evidently MS Excel in actually an MDI app even though each spreadsheet can now be open in a seperate window.
So I guess the only part I am really talking about here is the ability to have all pages open within a single container rather than as independent windows.
 
Last edited:

aeric

Expert
Licensed User
Longtime User
I don't understand exactly what you mean by this....
Any B4XPages B4J app only shows one icon on the taskbar!
MDI is a thing in VB6. Click the link on post #1. It has a parent window that contains children windows. I think this kind of design is outdated.
However, I have seen some projects with MDI design in this forum. Just search for it.
 

Cableguy

Expert
Licensed User
Longtime User
Then I don't get it.....
B4J version of a B4XPages app
The B4XPages framework was created in order to have a common base for all the B4X IDE's, so that most code could be used cross-platform.
That said, nothing prevents the dev from creating a "classic" B4J UI app, and have those MDI (Modal Forms I believe) in such app
 

Magma

Expert
Licensed User
Longtime User
check here:
 

MrKim

Well-Known Member
Licensed User
Longtime User
I don't understand exactly what you mean by this....
Any B4XPages B4J app only shows one icon on the taskbar!
You are absolutely right! I was confusing it with one of my other apps that is B4J only. In that case I DO want multiple seperate windows displayed at the same time and I do wind up with LOTS of unwanted taskbar icons.
Then I don't get it.....

The B4XPages framework was created in order to have a common base for all the B4X IDE's, so that most code could be used cross-platform.
That said, nothing prevents the dev from creating a "classic" B4J UI app, and have those MDI (Modal Forms I believe) in such app
NOT modal. That is different. Modal disables most of the page and requires users to focus on a specific window and close it before continuing. In an MDI app ALL windows are contained within a 'Parent' Window but each one can be accessed at any time. MDI would actually make B4J apps more like B4A/B4i.
 
Last edited:

aeric

Expert
Licensed User
Longtime User
MDI would actually make B4J apps more like B4A/B4i.
I think you are misunderstanding. In B4A and B4i, there is only 1 visible page at 1 time. This is also applied to B4J using B4XPages. If you want to hide a page in B4J with B4XPages when opening another page, you can use B4XPages.ClosePage(Me). The page is not removed from the stack.
 

MrKim

Well-Known Member
Licensed User
Longtime User
I think you are misunderstanding. In B4A and B4i, there is only 1 visible page at 1 time. This is also applied to B4J using B4XPages. If you want to hide a page in B4J with B4XPages when opening another page, you can use B4XPages.ClosePage(Me). The page is not removed from the stack.
I understand that, and that is what I do, but then users move the open page or change the size and all of that has to be managed relative to all the other pages. With an MDI app all windows are within a container window. If you maximize a window it is maximized only to the size of the container window and ALL other Windows within that container are also Maximized. When you move the container window ALL windows within that container are also moved. If you resize the container and the windows within that container are maximized then all windows are resized. All in all this would provide an experience closer to what you get on a phone or a tablet.

And yes, I can write code to manage all of that but, if it is not too difficult to implement, an MDI container could be much simpler.
 

Magma

Expert
Licensed User
Longtime User
Can you put b4xpages on tabs?
...well if you check b4xview, panes items you will that they have loadlayout...


So you can have anything on tabs... or custom dashboards.... a pane at left side with menu/options/buttons... and a master pane in right side loading selected menu items ---> b4xviews...

May be seems difficult to understand how will split the code and not have large modules... but if you check my MDI Windows childs examples will see how you can manage everything.... Also you can create your customviews (search for those in forum) that are great !
 

PaulMeuris

Active Member
Licensed User
1709703384151.png

Here's a simple visualization of using B4XPage layouts in a separate window and in a tab page.
The page 1 window is not MDI whereas the tab page is in the main window's tab pane.
Source code in the attachment.
 

Attachments

  • testenvironment53.zip
    4.5 KB · Views: 33
Top