Xorph


Navigation
  • about
  • features
  • examples
  • requirements
  • download
  • installation
  • contact
  • SourceForge

  • SourceForge Logo

    example :: complex environment


    This is a more or less full-featured example of what you can do using Xorph. Please take a look at the more simple examples on this page so you don't get confused by all of the options used here. Or simply ignore the source and take a look at the pictures...

    Xorph source code

    <?xml version="1.0" encoding="UTF-8"?>
    <xorph:environment name="ComplexEnvironment" 
                       prefix="XorphComplexEnvironmentDemo" 
                       xmlns:xorph="http://xorph.sourceforge.net/" 
                       xmlns:x0="http://www.w3.org/2001/XMLSchema">
        <options>
            <group label="text input" name="GText">
                <option label="first text" name="Text1">
                    <text case="any"/>
                    <description>This is a simple input field providing a
                        single line of text. The description may be omitted.</description>
                </option>
                <option label="second text (default)" name="Text2">
                    <text case="any" defaultValue="default value"/>
                    <description>Options may provide a default value.</description>
                </option>
                <option label="third text (max 15)" name="Text3">
                    <text case="any" maxLength="15"/>
                    <description>A maximum length may be specified.</description>
                </option>
                <option label="fourth text (upper case)" name="Text4">
                    <text case="upper"/>
                    <description>text options may be upper case only...</description>
                </option>
                <option label="fifth text (lower case)" name="Text5">
                    <text case="lower"/>
                    <description>...or lower case only.</description>
                </option>
                <option label="sixth text (password)" name="Text6">
                    <text case="any" password="true"/>
                    <description>This option might be useful for password
                        entry fields.</description>
                </option>
                <option label="multi-line text" name="Multi1">
                    <multiline/>
                    <description>Multi-line text fields are possible as
                        well, but limited in configurability.</description>
                </option>
            </group>
            <group label="numeric input" name="GNum">
                <option label="first numeric" name="Num1">
                    <numeric maxValue="255" minValue="-100"/>
                    <description>Numeric values must be specified including
                        a minimum and maximum value.</description>
                </option>
                <option label="second numeric" name="Num2">
                    <numeric defaultValue="50" maxValue="1000" minValue="0"/>
                    <description>Numeric values may me provide a default
                        value as well.</description>
                </option>
            </group>
            <group label="selection options" name="GSel">
                <option label="first checkbox" name="Check1">
                    <checkbox/>
                    <description>Checkboxes are turned off by default...</description>
                </option>
                <option label="second checkbox" name="Check2">
                    <checkbox defaultValue="true"/>
                    <description>...but may be provided with a default value.</description>
                </option>
                <option label="first selection group" name="Select1">
                    <selectNumeric standardDisplay="listbox">
                        <values>
                            <value label="Option 1" value="1"/>
                            <value label="Option 2" value="2"/>
                            <value label="Option 3" value="3"/>
                        </values>
                    </selectNumeric>
                    <description>Selection groups may use numeric values...</description>
                </option>
                <option label="second selection group" name="Select2">
                    <selectText standardDisplay="radiobuttons">
                        <values>
                            <value label="Option one" value="one"/>
                            <value label="Option two" value="two"/>
                            <value label="Option three" value="three"/>
                        </values>
                    </selectText>
                    <description>...or named constants that will be
                        translated into constants at compile time.</description>
                </option>
                <option label="third selection group" name="Select3">
                    <selectNumeric defaultValue="2" standardDisplay="dropdown">
                        <values>
                            <value label="Option 1" value="1"/>
                            <value label="Option 2" value="2"/>
                            <value label="Option 3" value="3"/>
                        </values>
                    </selectNumeric>
                    <description>Unless a default value is provided, the
                        first option is selected by default.</description>
                </option>
                <option label="fourth selection group" name="Select4">
                    <selectText defaultValue="three" standardDisplay="radiobuttons">
                        <values>
                            <value label="Option one" value="one"/>
                            <value label="Option two" value="two"/>
                            <value label="Option three" value="three"/>
                        </values>
                    </selectText>
                    <description>Same with named constants.</description>
                </option>
            </group>
            <group label="file and directory options" name="GFileDir">
                <option label="first file" name="File1">
                    <file/>
                    <description>File options provide a convenient way of
                        specifying file names.</description>
                </option>
                <option label="second file" name="File2">
                    <file defaultValue="/tmp/myfile"/>
                    <description>File options may be provided with default
                        values as well.</description>
                </option>
                <option label="first directory" name="Dir1">
                    <directory/>
                    <description>Directory options work very much the same
                        way  that file options do, they just don't show
                        files in the selection dialog box.</description>
                </option>
                <option label="second directory" name="Dir2">
                    <directory defaultValue="/tmp"/>
                    <description/>
                </option>
            </group>
        </options>
        <interface name="Dialog1" title="first dialog">
            <simpleDialog>
                <text>You can place text elements of arbitrary length above, ...</text>
                <includeGroup name="GText" />
                <includeGroup name="GNum" withFrame="false" />
                <text>...between...</text>
                <includeOption name="Select1" display="radiobuttons" />
                <includeOption name="Select2" />
                <includeOption name="Select3" />
                <text>...or below the dialog elements.</text>
            </simpleDialog>
        </interface>
        <interface name="Dialog2" title="second dialog">
            <simpleDialog columns="2">
                <includeGroup name="GText" />
                <includeGroup name="GNum" />
                <includeGroup name="GSel" />
                <skip />
                <skip />
                <includeGroup name="GFileDir" />
            </simpleDialog>
        </interface>
        <interface name="Dialog3" title="read-only dialog">
            <simpleDialog columns="2">
                <includeGroup name="GText"    readOnly="true" />
                <includeGroup name="GNum"     readOnly="true" />
                <includeGroup name="GSel"     readOnly="true" />
                <includeOption name="Dir2"    readOnly="true" />
                <includeOption name="File1"   readOnly="true" />
            </simpleDialog>
        </interface>
        <interface name="Tabbed1" title="first tabbed dialog">
            <tabbedDialog>
                <card label="Card 1" name="t1c1">
                    <text>Business...</text>
                    <includeGroup name="GSel" withFrame="false" />
                    <text>...as usual.</text>
                </card>
                <card label="Card 2" name="t1c2">
                    <includeGroup name="GText" />
                    <includeGroup name="GNum" />
                </card>
                <card label="Card 3" name="t1c3">
                    <includeGroup name="GFileDir" />
                </card>
            </tabbedDialog>
        </interface>
        <interface name="Wizard1" title="first wizard">
            <wizardDialog>
                <page label="Welcome" name="w1p1">
                    <text>Welcome to the world of...</text>
                </page>
                <page label="first demonstration" name="w1p2" columns="2">
                    <text>As you can see...</text>
                    <includeGroup name="GSel" />
                    <includeGroup name="GFileDir" />
                    <text>...there is nothing to be seen.</text>
                </page>
                <page label="second demonstration" name="w1p3">
                    <text>Once again...</text>
                    <includeGroup name="GText" />
                    <includeOption name="Dir2" />
                    <includeOption name="File1" />
                </page>
                <page label="" name="w1p4">
                    <text>Thank you for your patience.</text>
                </page>
            </wizardDialog>
        </interface>
    </xorph:environment>

    Screenshots

    The first three interfaces are simple dialogs and look like this:

    first dialog
    second dialog
    third dialog

    The fourth interface consists of three tabbed pages:

    first card of tabbed dialog
    second card of tabbed dialog
    third card of tabbed dialog

    The last interface is a wizard-style dialog:

    first page of wizard dialog
    second page of wizard dialog
    third page of wizard dialog
    fourth page of wizard dialog

    © 2005 Volker Wegert