The Custom Dialog Builder

classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

The Custom Dialog Builder

David Marso
Administrator
It is one thing to make something easy to use, another thing to make it worth using!!!
OTOH:  It is far superior the complete piece of crap in the old SAX dialogs.
How about making it
Custom enough so we can specify the sizes  and positions of controls?
Custom enough to be able to have a group without a title? (I just want a frame!)
Custom enough to provide a grid (or ultra-cheesy a multiline text control)?
I want to allow my user to specify a 2 dimensional matrix
I am stuck with 1,2,3;4,5,6;7,8,9;... etc.
(At least it is ready to get sucked into MATRIX, OTOH, probably will need to resize the dialog and hope the user to get it right ;-(
Maybe more than one level of sub-dialogs?
Maybe a little event logic?
  If option Blech display subdialog x
  If option ARGHHHH! Display subdialog y
....
Documentation?  It is so simple it doesn't need much explanation.

       
Please reply to the list and not to my personal email.
Those desiring my consulting or training services please feel free to email me.
---
"Nolite dare sanctum canibus neque mittatis margaritas vestras ante porcos ne forte conculcent eas pedibus suis."
Cum es damnatorum possederunt porcos iens ut salire off sanguinum cliff in abyssum?"
Reply | Threaded
Open this post in threaded view
|

Re: The Custom Dialog Builder

Ruben Geert van den Berg
Good points. I wonder whether that's doable by manually editing the .xml file underlying it. If so, you could perhaps create your own 'template' once and save it under different filenames in order to reuse it for different custom dialogs.

Pity they aren't dynamic as the old SaxBasic scripts used to be.

In V21 the CDB is kinda buggy too (see this unresolved post for instance: http://spssx-discussion.1045642.n5.nabble.com/Frequent-Error-when-Building-Custom-Dialog-Error-saving-dialog-td5722348.html).
Reply | Threaded
Open this post in threaded view
|

Re: The Custom Dialog Builder

David Marso
Administrator
Thanks Ruben,
  Any pointers to where I might locate that XML file for possible editing?
Yeah, dynamic is the word.  OTOH, those were a grey hair inducing adventures wrangling the events etc...
I built a few back in the day and turned to VB for the GUI, attached the exe to a menu and all was good.
I haven't yet explored the successor to SAX.  I just opened a script and a dialog. Looks like the SOS from before.
I wonder if the problems you experienced in 21 are still in 22.  I have 22 loaded.  If you don't I would be happy to
attempt to replicate if you send me relevant files and step by step repro.
Funny that Jon or someone (er actually Jon seems to be the only someone
from IBM that gives a flying monkey turd about what's going on in the wild)
hasn't stepped up to comment on your 1 post thread ;-(.
Hacking the XML file is an interesting idea.  OTOH, is this stuff documented anywhere?
David


On Sat, Oct 26, 2013 at 12:01 AM, Ruben Geert van den Berg [via SPSSX Discussion] <[hidden email]> wrote:
Good points. I wonder whether that's doable by manually editing the .xml file underlying it. If so, you could perhaps create your own 'template' once and save it under different filenames in order to reuse it for different custom dialogs.

Pity they aren't dynamic as the old SaxBasic scripts used to be.

In V21 the CDB is kinda buggy too (see this unresolved post for instance: http://spssx-discussion.1045642.n5.nabble.com/Frequent-Error-when-Building-Custom-Dialog-Error-saving-dialog-td5722348.html).


If you reply to this email, your message will be added to the discussion below:
http://spssx-discussion.1045642.n5.nabble.com/The-Custom-Dialog-Builder-tp5722736p5722741.html
To unsubscribe from The Custom Dialog Builder, click here.
NAML

Please reply to the list and not to my personal email.
Those desiring my consulting or training services please feel free to email me.
---
"Nolite dare sanctum canibus neque mittatis margaritas vestras ante porcos ne forte conculcent eas pedibus suis."
Cum es damnatorum possederunt porcos iens ut salire off sanguinum cliff in abyssum?"
Reply | Threaded
Open this post in threaded view
|

Re: The Custom Dialog Builder

Jon K Peck
In reply to this post by David Marso
The first goal in developing the CDB was to make it really easy to use for non-gui programmers, which is most of us.  So the automatic drag and drop layout was a really important feature.  While it doesn't give you complete control over the layout, since it is restricted to two columns plus a subdialog column, it works pretty well in most cases.  The old coordinate-based dialog technology is long since dead.  These dialogs are all resizeable by the user, and the controls automatically adapt to the size of the text, which makes them easily translatable.  The dialogs are managed and drawn mostly by the same classes that render the built-in dialogs.  You can't modify the layout by hacking the XML, since it only specifics the columns and control order within columns.  There is no static size information.  Note also that you can use \n in control text to force wrapping, which will affect the size of the control.  The spd file, btw, is a zip container containing an xml file and one or more properties files that define the dialog.  In theory you could generate an entire dialog programmatically by creating or modifying those files, but it would be tricky.

You can have a textless frame.  Just drag an Item Group control onto the canvas and give it an empty title, and drag other controls inside it.

A grid control is number 1 on my wish list for the CDB, but it is a complex control to get right, especially when it comes to specifying the syntax that it should generate and the validation conditions for the cells, since it needs to be able to handle columns with different rules.  Someday we will have this.

Some event logic would also be nice (Python conditions, most likely), but look into the enabling rules and validation conditions that are already there for controls.  In most cases I have been able to make those work reasonably well with the many dialogs I have done.  Note especially that empty or disabled controls simply generate no syntax so using checkbox groups and radio buttons with nested controls goes pretty far.  Sometimes a little static text information or a tooltip on a control helps.  Complex conditions, though, need to be left for programmatic checking when the dialog is executed.

All this is thoroughly documented in the help.


Jon Peck (no "h") aka Kim
Senior Software Engineer, IBM
[hidden email]
phone: 720-342-5621




From:        David Marso <[hidden email]>
To:        [hidden email],
Date:        10/25/2013 04:26 PM
Subject:        [SPSSX-L] The Custom Dialog Builder
Sent by:        "SPSSX(r) Discussion" <[hidden email]>




It is one thing to make something easy to use, another thing to make it worth
using!!!
OTOH:  It is far superior the complete piece of crap in the old SAX dialogs.
How about making it
Custom enough so we can specify the sizes  and positions of controls?
Custom enough to be able to have a group without a title? (I just want a
frame!)
Custom enough to provide a grid (or ultra-cheesy a multiline text control)?
I want to allow my user to specify a 2 dimensional matrix
I am stuck with 1,2,3;4,5,6;7,8,9;... etc.
(At least it is ready to get sucked into MATRIX, OTOH, probably will need to
resize the dialog and hope the user to get it right ;-(
Maybe more than one level of sub-dialogs?
Maybe a little event logic?
 If option Blech display subdialog x
 If option ARGHHHH! Display subdialog y
....
Documentation?  It is so simple it doesn't need much explanation.





-----
Please reply to the list and not to my personal email.
Those desiring my consulting or training services please feel free to email me.
---
"Nolite dare sanctum canibus neque mittatis margaritas vestras ante porcos ne forte conculcent eas pedibus suis."
Cum es damnatorum possederunt porcos iens ut salire off sanguinum cliff in abyssum?"
--
View this message in context:
http://spssx-discussion.1045642.n5.nabble.com/The-Custom-Dialog-Builder-tp5722736.html
Sent from the SPSSX Discussion mailing list archive at Nabble.com.

=====================
To manage your subscription to SPSSX-L, send a message to
[hidden email] (not to SPSSX-L), with no body text except the
command. To leave the list, send the command
SIGNOFF SPSSX-L
For a list of commands to manage subscriptions, send the command
INFO REFCARD


Reply | Threaded
Open this post in threaded view
|

Re: The Custom Dialog Builder

David Marso
Administrator
This post was updated on .
Thanks for your response Jon,
See an example of issue:
Note on left in dev mode, right in preview.
Note odd spacing in titled version, NO frame in non-title version.
Also it would be nice to be able to populate a listbox or combo and be able to copy/paste control
similar to VB and other normal IDEs
CDB in action
---

Jon K Peck wrote
The first goal in developing the CDB was to make it really easy to use for
non-gui programmers, which is most of us.  So the automatic drag and drop
layout was a really important feature.  While it doesn't give you complete
control over the layout, since it is restricted to two columns plus a
subdialog column, it works pretty well in most cases.  The old
coordinate-based dialog technology is long since dead.  These dialogs are
all resizeable by the user, and the controls automatically adapt to the
size of the text, which makes them easily translatable.  The dialogs are
managed and drawn mostly by the same classes that render the built-in
dialogs.  You can't modify the layout by hacking the XML, since it only
specifics the columns and control order within columns.  There is no
static size information.  Note also that you can use \n in control text to
force wrapping, which will affect the size of the control.  The spd file,
btw, is a zip container containing an xml file and one or more properties
files that define the dialog.  In theory you could generate an entire
dialog programmatically by creating or modifying those files, but it would
be tricky.

You can have a textless frame.  Just drag an Item Group control onto the
canvas and give it an empty title, and drag other controls inside it.

A grid control is number 1 on my wish list for the CDB, but it is a
complex control to get right, especially when it comes to specifying the
syntax that it should generate and the validation conditions for the
cells, since it needs to be able to handle columns with different rules.
Someday we will have this.

Some event logic would also be nice (Python conditions, most likely), but
look into the enabling rules and validation conditions that are already
there for controls.  In most cases I have been able to make those work
reasonably well with the many dialogs I have done.  Note especially that
empty or disabled controls simply generate no syntax so using checkbox
groups and radio buttons with nested controls goes pretty far.  Sometimes
a little static text information or a tooltip on a control helps.  Complex
conditions, though, need to be left for programmatic checking when the
dialog is executed.

All this is thoroughly documented in the help.


Jon Peck (no "h") aka Kim
Senior Software Engineer, IBM
[hidden email]
phone: 720-342-5621




From:   David Marso <[hidden email]>
To:     [hidden email],
Date:   10/25/2013 04:26 PM
Subject:        [SPSSX-L] The Custom Dialog Builder
Sent by:        "SPSSX(r) Discussion" <[hidden email]>



It is one thing to make something easy to use, another thing to make it
worth
using!!!
OTOH:  It is far superior the complete piece of crap in the old SAX
dialogs.
How about making it
Custom enough so we can specify the sizes  and positions of controls?
Custom enough to be able to have a group without a title? (I just want a
frame!)
Custom enough to provide a grid (or ultra-cheesy a multiline text
control)?
I want to allow my user to specify a 2 dimensional matrix
I am stuck with 1,2,3;4,5,6;7,8,9;... etc.
(At least it is ready to get sucked into MATRIX, OTOH, probably will need
to
resize the dialog and hope the user to get it right ;-(
Maybe more than one level of sub-dialogs?
Maybe a little event logic?
  If option Blech display subdialog x
  If option ARGHHHH! Display subdialog y
....
Documentation?  It is so simple it doesn't need much explanation.





-----
Please reply to the list and not to my personal email.
Those desiring my consulting or training services please feel free to
email me.
---
"Nolite dare sanctum canibus neque mittatis margaritas vestras ante porcos
ne forte conculcent eas pedibus suis."
Cum es damnatorum possederunt porcos iens ut salire off sanguinum cliff in
abyssum?"
--
View this message in context:
http://spssx-discussion.1045642.n5.nabble.com/The-Custom-Dialog-Builder-tp5722736.html

Sent from the SPSSX Discussion mailing list archive at Nabble.com.

=====================
To manage your subscription to SPSSX-L, send a message to
[hidden email] (not to SPSSX-L), with no body text except the
command. To leave the list, send the command
SIGNOFF SPSSX-L
For a list of commands to manage subscriptions, send the command
INFO REFCARD
Please reply to the list and not to my personal email.
Those desiring my consulting or training services please feel free to email me.
---
"Nolite dare sanctum canibus neque mittatis margaritas vestras ante porcos ne forte conculcent eas pedibus suis."
Cum es damnatorum possederunt porcos iens ut salire off sanguinum cliff in abyssum?"
Reply | Threaded
Open this post in threaded view
|

Re: The Custom Dialog Builder

Ruben Geert van den Berg
@Jon: " In theory you could generate an entire dialog programmatically by creating or modifying those files, but it would be tricky."

I actually tried that but I didn't know what "re-zip" format to use for the .spd file... It wasn't recognized as a valid .spd format in the end :-/

@David: FWIW I usually use a free text field for specifying variables (sometimes directories as well) so one can nicely use the "to" and "all" keywords for this.

Pity there seem to be some tiny bugs but they're not quite on my top priorities list for now...
Reply | Threaded
Open this post in threaded view
|

Re: The Custom Dialog Builder

Albert-Jan Roskam
--------------------------------------------
On Sun, 10/27/13, Ruben Geert van den Berg <[hidden email]> wrote:

 Subject: Re: [SPSSX-L] The Custom Dialog Builder
 To: [hidden email]
 Date: Sunday, October 27, 2013, 7:13 AM

 @Jon: " In theory you could generate
 an entire dialog programmatically by
 creating or modifying those files, but it would be tricky."

 I actually tried that but I didn't know what "re-zip" format
 to use for the
 .spd file... It wasn't recognized as a valid .spd format in
 the end :-/

===> I've done this with both .spd files and .str (clementine/modeller streams). IIRC I just used the Python zipfile module to zip and unzip and elementtree to parse the xml.

=====================
To manage your subscription to SPSSX-L, send a message to
[hidden email] (not to SPSSX-L), with no body text except the
command. To leave the list, send the command
SIGNOFF SPSSX-L
For a list of commands to manage subscriptions, send the command
INFO REFCARD
Reply | Threaded
Open this post in threaded view
|

Re: The Custom Dialog Builder

Jon K Peck
In reply to this post by David Marso
The uneven display seems to be limited to preview mode in the CDB.  If you install the dialog are use it from the menus, it displays properly.  This did not happen in V21,

The disappearing frame can be remedied by just using a single blank as the title.  Or an em dash character such as U2014  (Dialogs are always displayed using Unicode.)

I have filed bugs on these, but they are minor problems.

Listbox and combo boxes can be populated with a static list, based on the contents of a target list, or from a custom attribute in a dataset.  That means for the last one that if you programmatically generate a custom attribute in the dataset, the dialog can automatically pick up the contents.  And, if you are really brave, you could extract the xml and insert new contents for a control, but, of course, you would have to do this before  opening the dialog that would get modified.


Jon Peck (no "h") aka Kim
Senior Software Engineer, IBM
[hidden email]
phone: 720-342-5621




From:        David Marso <[hidden email]>
To:        [hidden email],
Date:        10/26/2013 09:20 AM
Subject:        Re: [SPSSX-L] The Custom Dialog Builder
Sent by:        "SPSSX(r) Discussion" <[hidden email]>




Thanks for your response Jon,
See an example of issue:
Note on left in dev mode, right in preview.
Note odd spacing in titled version, NO frame in non-title version.
Also it would be nice to be able to populate a listbox or combo and be able
to copy/paste control
similar to VB and other normal IDEs
---


Jon K Peck wrote
> The first goal in developing the CDB was to make it really easy to use for
> non-gui programmers, which is most of us.  So the automatic drag and drop
> layout was a really important feature.  While it doesn't give you complete
> control over the layout, since it is restricted to two columns plus a
> subdialog column, it works pretty well in most cases.  The old
> coordinate-based dialog technology is long since dead.  These dialogs are
> all resizeable by the user, and the controls automatically adapt to the
> size of the text, which makes them easily translatable.  The dialogs are
> managed and drawn mostly by the same classes that render the built-in
> dialogs.  You can't modify the layout by hacking the XML, since it only
> specifics the columns and control order within columns.  There is no
> static size information.  Note also that you can use \n in control text to
> force wrapping, which will affect the size of the control.  The spd file,
> btw, is a zip container containing an xml file and one or more properties
> files that define the dialog.  In theory you could generate an entire
> dialog programmatically by creating or modifying those files, but it would
> be tricky.
>
> You can have a textless frame.  Just drag an Item Group control onto the
> canvas and give it an empty title, and drag other controls inside it.
>
> A grid control is number 1 on my wish list for the CDB, but it is a
> complex control to get right, especially when it comes to specifying the
> syntax that it should generate and the validation conditions for the
> cells, since it needs to be able to handle columns with different rules.
> Someday we will have this.
>
> Some event logic would also be nice (Python conditions, most likely), but
> look into the enabling rules and validation conditions that are already
> there for controls.  In most cases I have been able to make those work
> reasonably well with the many dialogs I have done.  Note especially that
> empty or disabled controls simply generate no syntax so using checkbox
> groups and radio buttons with nested controls goes pretty far.  Sometimes
> a little static text information or a tooltip on a control helps.  Complex
> conditions, though, need to be left for programmatic checking when the
> dialog is executed.
>
> All this is thoroughly documented in the help.
>
>
> Jon Peck (no "h") aka Kim
> Senior Software Engineer, IBM

> peck@.ibm

> phone: 720-342-5621
>
>
>
>
> From:   David Marso &lt;

> david.marso@

> &gt;
> To:

> SPSSX-L@.uga

> ,
> Date:   10/25/2013 04:26 PM
> Subject:        [SPSSX-L] The Custom Dialog Builder
> Sent by:        "SPSSX(r) Discussion" &lt;

> SPSSX-L@.uga

> &gt;
>
>
>
> It is one thing to make something easy to use, another thing to make it
> worth
> using!!!
> OTOH:  It is far superior the complete piece of crap in the old SAX
> dialogs.
> How about making it
> Custom enough so we can specify the sizes  and positions of controls?
> Custom enough to be able to have a group without a title? (I just want a
> frame!)
> Custom enough to provide a grid (or ultra-cheesy a multiline text
> control)?
> I want to allow my user to specify a 2 dimensional matrix
> I am stuck with 1,2,3;4,5,6;7,8,9;... etc.
> (At least it is ready to get sucked into MATRIX, OTOH, probably will need
> to
> resize the dialog and hope the user to get it right ;-(
> Maybe more than one level of sub-dialogs?
> Maybe a little event logic?
>   If option Blech display subdialog x
>   If option ARGHHHH! Display subdialog y
> ....
> Documentation?  It is so simple it doesn't need much explanation.
>
>
>
>
>
> -----
> Please reply to the list and not to my personal email.
> Those desiring my consulting or training services please feel free to
> email me.
> ---
> "Nolite dare sanctum canibus neque mittatis margaritas vestras ante porcos
> ne forte conculcent eas pedibus suis."
> Cum es damnatorum possederunt porcos iens ut salire off sanguinum cliff in
> abyssum?"
> --
> View this message in context:
>
http://spssx-discussion.1045642.n5.nabble.com/The-Custom-Dialog-Builder-tp5722736.html
>
> Sent from the SPSSX Discussion mailing list archive at Nabble.com.
>
> =====================
> To manage your subscription to SPSSX-L, send a message to

> LISTSERV@.UGA

>  (not to SPSSX-L), with no body text except the
> command. To leave the list, send the command
> SIGNOFF SPSSX-L
> For a list of commands to manage subscriptions, send the command
> INFO REFCARD





-----
Please reply to the list and not to my personal email.
Those desiring my consulting or training services please feel free to email me.
---
"Nolite dare sanctum canibus neque mittatis margaritas vestras ante porcos ne forte conculcent eas pedibus suis."
Cum es damnatorum possederunt porcos iens ut salire off sanguinum cliff in abyssum?"
--
View this message in context:
http://spssx-discussion.1045642.n5.nabble.com/The-Custom-Dialog-Builder-tp5722736p5722746.html
Sent from the SPSSX Discussion mailing list archive at Nabble.com.

=====================
To manage your subscription to SPSSX-L, send a message to
[hidden email] (not to SPSSX-L), with no body text except the
command. To leave the list, send the command
SIGNOFF SPSSX-L
For a list of commands to manage subscriptions, send the command
INFO REFCARD