O$4 - Copy a continer object
Michael Mantkowski
michaelj at clientrax.com
Wed Mar 18 15:45:37 EDT 2015
It appears my optimism was short lived.
The issue I came upon today is with any visual changes you make to the
Subwindow. For instance, you change the color of a field on the Subwindow.
The process of creating the new Object with the higher $order to bring it
"ToTop" loses any of those changes because it loads a new copy of the
Subwindow.
My first idea was to move only the Subwindow field into a newly created
scrollbox so that I could fake Omnis out with the $order of the Scrollbox
being higher even though the $order of the Subwindow had not changed. I
have since discovered that you cannot move fields from one container to
another in runtime.
Foiled Again!
The only way I can think to get around that would be to create a list of
every attribute for every field in the subwindow and then apply them after
creating the new Subwindow. However, I cannot imagine that this would be
efficient when you have more than a few fields in the subwindow. And I a
couple cases I have around 200. Multiply that by the number of attributes
that could be possibly changed...
I just cannot seem to find a way around the $order barrier.
*********************************************************************
Michael Mantkowski
ClienTrax Software
1-614-875-2245
*********************************************************************
-----Original Message-----
From: omnisdev-en-bounces at lists.omnis-dev.com
[mailto:omnisdev-en-bounces at lists.omnis-dev.com] On Behalf Of Michael
Mantkowski
Sent: Tuesday, March 17, 2015 9:20 PM
To: 'OmnisDev List - English'
Subject: RE: O$4 - Copy a continer object
I am having some success with the creating and destroying my Container /
Subwindow objects.
Have run into a few weird behaviors that I have had to compensate for. For
instance $left of Subwindows are seen in relation to the window they are in
rather than the Scrolllist that contains them when copying them from an
object already on the screen. I wasted several hours trying to find out why
my Subwindows were not working only to find out that $left was set to -402
when I copied the object to a new Scrollbox (So to my eyes it looked like
they were not visible or working.). I believe it is seeing the copy as
"move" and picking up the $left in relation to the new position I was trying
to copy it to. I had expected that if it was 6 pixels from the $left of the
original scrollbox that it would carry that value into the new one I was
adding it to.
Anyway, I have a fairly simple example now that actually works and the
performance is pretty good.
However, I have not done all the other things to make the windows work
together yet so I am not ready to declare a success yet. But it's looking
like it is possible.
*********************************************************************
Michael Mantkowski
ClienTrax Software
1-614-875-2245
*********************************************************************
-----Original Message-----
From: omnisdev-en-bounces at lists.omnis-dev.com
[mailto:omnisdev-en-bounces at lists.omnis-dev.com] On Behalf Of Michael
Mantkowski
Sent: Monday, March 16, 2015 7:32 AM
To: 'OmnisDev List - English'
Subject: RE: O$4 - Copy a continer object
Hi Mischa,
I have been thinking along those same lines.
I could probably work out a method of doing the same with the subwindow as
well. My thought is that I could save a list of any instance variables in
the original subwindow that is in scope to the container window, then create
a new subwindow from the original and use the list to initialize the
instance variables to what they were in the original subwindow. Once the
new subwindow is open, then I could delete the original one under it and we
would have the new one on top.
There will probably be unforeseen complications and as you say their might
be some redraw issues but I don't plan on have all that many windows open at
the same time. But, some of them are a bit extensive with 200 or so objects
on them. Its a lot of processing to do something like this, but it may
work. I will play around with it and report back.
Thanks,
Michael
*********************************************************************
Michael Mantkowski
ClienTrax Software
1-614-875-2245
*********************************************************************
-----Original Message-----
From: omnisdev-en-bounces at lists.omnis-dev.com
[mailto:omnisdev-en-bounces at lists.omnis-dev.com] On Behalf Of Mischa
Sent: Sunday, March 15, 2015 8:32 PM
To: 'OmnisDev List - English'
Subject: Re: O$4 - Copy a continer object
Hi Michael,
yes, this is what I meant with 'Desktop Window'
I've played a little bit around and discovered (getting to your initial
problem), that complex grids are copied with their contents. This could give
you a possibility to manage the Z order of your child-windows. You could use
the header of the complex grid as window bar, and the horizontal header or
the row for the objects/bobjects of your child window, depending on your
preferences. When a child window shall come to front, you copy it to a new
complex grid object and delete the old one. This might turn out a bit more
complicated at the second glance because when the user clicks into an entry
field you have to take care that it is the current field in the newly
created object, but I think it should be doable. Maybe a similar approach
can be done with subwindows as well, but it might evoke a performance issue,
when there are many child windows around.
Hth
Mischa
---------------------------------------------------
T H E O M N I S L /\ B www.omnislab.com
---------------------------------------------------
-----Ursprüngliche Nachricht-----
Von: omnisdev-en-bounces at lists.omnis-dev.com
[mailto:omnisdev-en-bounces at lists.omnis-dev.com] Im Auftrag von Michael
Mantkowski
Gesendet: Montag, 16. März 2015 00:17
An: 'OmnisDev List - English'
Betreff: RE: O$4 - Copy a continer object
I think when Mischa refers to a "Desktop Window" he simply means a Window
that can contain other windows and act as a container for several Window
Instances that are independent of each other. Just like with Word or Excel
where each document file opens in its own space but can be acted upon with
all the features of Excel.
This is what I want to do. I want to have virtual client spaces where I can
open several windows (Client window, Patient Window, Invoice Window, Etc.)
and each one is its own space but its Windows act just like any other window
in Omnis. But it is restricted on its own "Desktop". Using this, the
computer operator can then open several different clients and act on each of
them independently without losing their place when they move between them.
As I said in the previous post, I can do all this now with Subwindows.
However, the one drawback is that we cannot control the Z Order of the
Subwindows. So simply clicking on the Subwindow space does not bring it to
top unless you are in Enter Data Mode or Modeless enter data and have an
entry field active. Then once you leave that Subwindow, it goes back to its
Z Order position even if you wanted it to be on top or at least in the 2nd
position. This being the case, overlapping windows are a problem. And
there is not enough room on a single desktop where I could have every window
they might like to use open at the same time.
Of course we could start using Tab Panes and other methods of hiding and
showing various information. But sometimes it is just nice to have your
windows where you want to put them rather than where the developer decides.
Michael
*********************************************************************
Michael Mantkowski
ClienTrax Software
1-614-875-2245
*********************************************************************
-----Original Message-----
From: omnisdev-en-bounces at lists.omnis-dev.com
[mailto:omnisdev-en-bounces at lists.omnis-dev.com] On Behalf Of Doug
Easterbrook
Sent: Sunday, March 15, 2015 4:18 PM
To: OmnisDev List - English
Subject: Re: O$4 - Copy a continer object
Personal opinion.
I would never want a 'desktop' window -- users on OSX expect that the
Z-Order of windows be independent of applications. In other words, you can
have an excel, word, omnis, word, omnis ,then excel window. in that order.
makes interaction between applications far easier
however, If you wish to use MDI frames metaphor (a la windows), could you
make a window that sits in the background with everything else aways on top
-- if you wanted.
Personally, what I really want is the ability to drag items from omnis to
the desktop -- to get data out of lists
Doug Easterbrook
Arts Management Systems Ltd.
mailto:doug at artsman.com
http://www.artsman.com
Phone (403) 536-1205 Fax (403) 536-1210
> On Mar 15, 2015, at 11:49 AM, Mischa <mischa at omnislab.com> wrote:
>
> Hi Michael,
>
> this was my prayer to Blyth/Omnis Software/Raining Data/TL since ages:
Give
> us a desktop window. This is a window that stays in background all the
time,
> but can react to mouse clicks and events - for exactly the thing you have
in
> mind. My impression always was, they had no idea what I'm talking about,
> however now that I sometimes have to test my applications on Macs, I can
see
> why - Macs don't have a desktop at all. At $euromnis 2014 I however had
the
> opportunity to talk with Bob Whiting, and at least it was acknowledged
that
> this in fact could be useful and not too hard to implement ;)
>
> You cannot switch the $order in a window instance, however setting the
> current field should bring it to the front. I did something similar with
> subwindows, however gave up because the redraw was quite strange when I
> dragged it around in the master window - the screen contents from the old
> position was not removed so it had a trail along the movement.
>
> Best greetings
> Mischa
_____________________________________________________________
Manage your list subscriptions at http://lists.omnis-dev.com
_____________________________________________________________
Manage your list subscriptions at http://lists.omnis-dev.com
_____________________________________________________________
Manage your list subscriptions at http://lists.omnis-dev.com
_____________________________________________________________
Manage your list subscriptions at http://lists.omnis-dev.com
More information about the omnisdev-en
mailing list