I hope this is the right place to post this question.
I was wondering if Servoy could show muliple windows at the same time, like FilemMaker 7 does. I am new to servoy and testing out the features to see what servoy can do.
Example:
Looking at a window in list view mode ( or a portal) that shows a bunch of orders. User clicks a line in the list and a new window pops up with the order they clicked displayed.
use more than one tabpanel on the same form. Each tabpanel can contain one or more forms. The form contained in a tabpanel can contain other tabpanels - a nice example here: http://www.servoymagazine.com/home/2004 … any_t.html
use the jSplitPane bean (look at the BookStudie in the examples folder of Servoy installation)
use application.showFormInDialog(…)
use dialogs : plugins.dialogs.showErrorDialog(…), plugins.dialogs.showInputDialog(…), etc.
use a controller form: look for the tutorial video on www.servoy.com
use application.showForm(…) to switch from one form to another
run more than one istances of servoy on the same PC
FileMaker works just like any other normal program that you come across everyday. The the program can display as many independent windows as needed. Look at Word. I can have five separated word docs in five different windows so I can look at them all at the same time. I can use the windows menu to switch between them.
In Filemake Each window displayed can show the same form or different forms from different tables related or not. All at the same time.
use more than one tabpanel on the same form. Each tabpanel can contain one or more forms. The form contained in a tabpanel can contain other tabpanels - a nice example here: http://www.servoymagazine.com/home/2004 … any_t.html
use the jSplitPane bean (look at the BookStudie in the examples folder of Servoy installation)
use application.showFormInDialog(…)
use dialogs : plugins.dialogs.showErrorDialog(…), plugins.dialogs.showInputDialog(…), etc.
use a controller form: look for the tutorial video on www.servoy.com
use application.showForm(…) to switch from one form to another
run more than one istances of servoy on the same PC
From my searching through the docs it seems that Servoy is modelled after the older version of Filemaker like version 6 and below. They did everything in one window style too.
I hope that servoy adds this to their feature list. I am also surprised that no one has asked for this yet.
In another thread (always from raymanj on this argument http://forum.servoy.com/viewtopic.php?t=3661 ) Westy pointed out this response from Bob Cusick to which I also agree 100%.
bcusick:
I’m afraid I have to side on the way things are: one main window. I’ve used tons of IDE’s (Oracle Forms, Access, FileMaker, Crystal Reports, 4D, Omins, RealBasic, etc.) - and every time you have to start doing window management, it becomes a huge nightmare. You never know how many windows the user will spawn, and when they do spawn a new one, you have to keep track of what’s in it, what window is on top, etc. etc.
The overhead is HUGE. With tabless tabpanels, you can show dozens if not hundreds of different forms (content) in multiple places on your form all based on the CONTENT of the master (underlying) form. You can even have tabpanels in tabpanels. My suggestion is: try it with tabless tabpanels and if you find it confusing and hard - just IMAGINE the difficulty you would have if all those things were in separate windows!! I’ve done - I KNOW how hard it is.
every time you have to start doing window management, it becomes a huge nightmare.
I still disagree.
I’ve also built apps that use multi windows, and never found it to be a huge nightmare. Difficult at certain times with certain tools, but always worth it. Besides why would Servoy’s implementation of mutliple windows need to be difficult to use?
Multiple windows have become a standard part of most applications and most application development tools, for good reason.
Image Excel with with a single window, but with multiple tabs and a ‘back button’. Just plain silly if you ask me.
One of the traps the we database developers fall into is that we need our users to see things the way we do. User don’t really know or understand what a form is. It’s little consolation that we can display numerous ‘forms’ with tab panels.
Windows have become a kind of conceptual unit to users. They like do do one thing over here, and then park it for a while, and maybe do something in another window, and perhaps go back to the original one.
I use multiple windows in Word all the time. The fact that you can display any number of pages from a document in a single Word window is beside the point. The extra window forms a conceptual unit that helps me get my work done.
Look at any most app that you use every day (how about the one I am using right now, a web browser), multiple windows are a core concept in modern UI design, and not by accident.
I totally respect your opinion - that’s one of the reasons I LOVE this forum!
Here’s the short answer: Servoy is not now - and won’t for the forseeable future allow multple document windows.
If this is a critical issue in your development - you can always use FMP7, RealBasic, Visual Basic, or some other tool; or you can write a Java Plug-in that would allow multiple windows.
Sorry to hear that Servoy will not support such a basic feature in the near future.
I do see how TAB panels can be used well in a single window environment. But I see users evolve while using computers. When they first start they like single window environments. As they grow learn more they naturally begin to multi task and they begin to use multiple windows with different data to help cross reference data that the designers originally did not see.
As rjacques pointed out users will start one train of action and then suddenly need to start a new train of action. So the advance users wonder why they must destroy or leave the current action instead of just moving it to the side and work on something else, then come back. Can you image if the real world was like that. I pick up one piece of paper and If I wanted to look at the TV or listen to the radio I had to first put the paper away before I could glance over to the TV. Now that would be Hell.
I am glad that Servoy does have a very fleiable solution (tab panels) to show multi type of data for a single window environment.
Well at lest I know that All my solutions in Servoy will only be in a single window.
You must see the power of tabpanels in conjuction with the splitpanel-bean
With some logic you can users let choose which form they wan’t to see in parts of the splitpanel.
Soon, on Servoy Magazine an article about the splitpanel bean!
It may be of great benefit to you to have a succinct answer your original post question :
Looking at a window in list view mode ( or a portal) that shows a bunch of orders. User clicks a line in the list and a new window pops up with the order they clicked displayed.
YES, you can do exactly that by using the ‘showFormInDialog()’ function under the Application node of the Method Editor.
This function will open up a second ‘window’ where a form of your choice is displayed within definable window area.
Enrico first replied with all possible ways that you could open up another view on data contained within a different table - which included the reference to this function.
This piece of information seems to have been clouded by the focus on tabpanels and then the discourse on the pros and cons of multi window environments !
It is true that Servoy will not allow you to spawn multiple windows in the same way that FM7 will allow this ad nauseam
Spawning multiple windows IS an administrative headache and a coding overhead and the number of current window views that you have on data is dependent upon exactly what you need to achieve in your solution.
It can also be a personal choice as to which way you wish to do things.
You may simply need to specify more clearly what else you need to do on top of the original question so that you can be given clearer guidelines on how this may be implemented within Servoy.
While the form-in-dialog is extremely useful, one limitation I keep running up against is that it is completely modal. In the example above where you can display a detail form-in-dialog from the main form, currently you need to close the dialog to be able to perform any other action (except in the dialog itself). So, if you want to see a detail of another record, you must close the dialog and then re-open it by an action on the main form - a two-step process that would be better if the user could click on another record on the main form and then have the dialog update.
Any possibility of creating a “modeless” form-in-dialog that doesn’t lock out any subsequent actions until after the dialog is closed?
This is the situation that I cannot understand then from a development and screen real estate angle !
If you are opening up a separate ‘window’ then, logic would tell me, you do not have available space on the current form in which to place, for example, a tabpanel !
If you open a separate window on the above principle then it must be partly or wholly obscuring the window behind it.
If it partly or wholly obscures the window behind then you have to close the front window or somehow bring that original window frontwards in order to get back to the other window and give that window focus again in order to choose the new target to appear in the new window !! phew !
If on the other hand you have available screen real estate to display a separate window then why bother with the separate window ?
In the above example why not just resize your current form which displays a hidden tabpanel in order to show the drill down detail.
This then leaves you ‘non-modal’ so that you continue to choose and cycle through records which are being shown in the resized form area.
A close button on the resized area reverts the form to its original size when finished.
The above is merely a perspective on this and again perhaps just indicates that you must identify the needs exactly so that the developer can resolve the issue in the most practical way.
Do you never use mutliple windows? In Excel, Word, your email client, web browsers, ‘ad nauseum’, do you only ever have one window open?
Do your windows always take up the entire screen, regardless of how much screen real estate you have? Do you hide every app on your machine that you are not currently using? Do you ever move between one window or app to another by just clicking on a piece of another window that you can see?
If Servoy will never have this aspect of GUI functionality, then fine, we can work around it. But the idea that “you don’t really need that standard and accepted piece of the GUI paradigm” is something that is a bit hard for me to swallow.
I am very sorry to have started such an extreme debate. All I asked was, can Servoy do multiple windows and I got my answer. No it can’t and will not.
Now, should applications be single or multi window? My answer is to always give what the user wants not what the developer wants. As a developer I have found that I can never build an application one way and please every user. So I build my apps with options.
Options are the key to a successful user friendly program. I always provide, for the user, two or three ways to do an action or access data. If I don’t, one user will like it while another will not or will not understand how to do it or even know that it exist. This is the reason why I said earlier that users evolve as they use computers. This is how all people learn throughout life.
So, instead of debating this topic just provide the option to allow multiple windows and any other feature. Some people will use single windows (Harry) and others will use multiple windows (Roger). Even some will use both and let the user decide which one to use at run time.
We might introduce MDI in the future. It’s simply quite some work and can also be potentially dangerous (just like events). If you have a huge project where you MUST have MDI you can always contact me.
In the software world you have SDI (Single Document Interface) and MDI (multiple document interface). SDI is what Servoy does and what the bigger vendors recommend in business applications based on what user interface specialists tell them based on extensive research.
When I started developing my solution IT2Print which is highly business critical and a complete rewrite (and a lot more) of a FileMaker application.
When I showed the first alpha to my pilot they were shocked and demanded a multi window solution and left me in shock. What could I do? Servoy couldn’t solve this for me and a discussion learned me that this was even the best to do. Like Jan mentioned before.
Today, one year later they are happy and I haven’t heard them anymore about this demand. Not once. It was/is a matter of adjustment and a single user interface is really cleaner.
looking at the headless_client demo, i think that it somewhat answers
the question that you can now. it raises obviously a license count (temporarily), but it does the trick.