<machine id="VCP" xmlns="http://slaysys.com/StateML/1.0" xmlns:graphviz="http://slaysys.com/StateML/1.0" > <!-- BASE CLASSES ============ See the README for details. Short version: these control both appearance (in the generated graph) and behavior (the .tt2 template looks for exit_class, for instance). --> <class id="prompt_class" graphviz:shape="record"/> <class id="entry_class" graphviz:shape="ellipse"/> <class id="exit_class" graphviz:shape="ellipse"/> <!-- ============= EVENT DEFINITIONS =============== --> <event id="#DEFAULT" name=""> </event> <!-- ================ TRANSITIONS =================== --> <state id="init" class-ids="entry_class"> <description>Initialize the machine</description> <arc goto="source_prompt"/> </state> <state id="source_prompt" class-ids="prompt_class"> <name>Source SCM type</name> <description> The kind of repository to copy data from. </description> <entry-handler><![CDATA[ $default = $ui->{Source} && $ui->{Source}->repo_scheme; $is_current_value = $ui->{EditMode} = 1 unless empty $default; ]]></entry-handler> <!-- no arcs here; see the first state in each of the subsidiary VCP-*-*.stml files. --> </state> <state id="dest_prompt" class-ids="prompt_class"> <name>Destination SCM type</name> <description> The kind of repository to copy data to. </description> <entry-handler><![CDATA[ $default = $ui->{Dest} && $ui->{Dest}->repo_scheme; $is_current_value = $ui->{EditMode} = 1 unless empty $default; ]]></entry-handler> <!-- no arcs here; see the final state(s) in each of the subsidiary VCP-*-*.stml files. --> </state> <state id="wrapup" class-ids="prompt_class"> <name>Next step</name> <description> What to do with all of the entered options. </description> <entry-handler> $default = "Save config file and run"; </entry-handler> <arc to="save_config_file" guard="'Save config file and run'"> <description>Save config file and run</description> <handler> $ui->{Run} = 1; </handler> </arc> <arc to="save_config_file" guard="'Save config file and exit'"> <description>Save config file and exit</description> </arc> <arc to="convert" guard="'Run without saving config file'"> <description>Run without saving config file</description> <handler> $ui->{Run} = 1; </handler> </arc> </state> <state id="save_config_file" class-ids="prompt_class"> <name>Config file name</name> <description> What filename to write the configuration file to. </description> <entry-handler> if ( ! empty $ui->{Filename} ) { $default = $ui->{Filename}; $is_current_value = 1; } else { $default = $ui->source->repo_id . "_to_" . $ui->dest->repo_id; } </entry-handler> <arc to="convert" guard="qr/./"> <description>Config filename</description> <handler> $ui->{SaveAsConfigFileName} = $answer; if ( -e $answer ) { die "Warning: '$answer' exists but is a directory!\n" if -d $answer; die "Warning: '$answer' exists but is not a regular file!\n" unless -f $answer; die "Warning: '$answer' exists but is not writable!\n" unless -w $answer; die "Warning: '$answer' already exists!\n"; } </handler> </arc> </state> <state id="convert" class-ids="exit_class"> <description>Run VCP with the options entered</description> <entry-handler></entry-handler> </state> </machine>
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#21 | 5399 | Barrie Slaymaker |
- Allow underscores after first chars in source and dest IDs. |
||
#20 | 4581 | Barrie Slaymaker | - user prompts have been improved, but not tested | ||
#19 | 4502 | Barrie Slaymaker | - "Run without saving" option removed | ||
#18 | 4064 | Barrie Slaymaker |
- RevML is no longer offered in the UI - Sources and dests are given an id in the UI - The .vcp file name defaulting now works |
||
#17 | 3859 | Barrie Slaymaker | - New UI files | ||
#16 | 3666 | Barrie Slaymaker | - vcp can now edit existing .vcp files, for VSS sources and revml dests | ||
#15 | 3647 | Barrie Slaymaker |
- All UI prompts & descriptions rewritten. - Minor tweak to VCP::Dest::p4 P4USER defaulting |
||
#14 | 3644 | Barrie Slaymaker | - Add Save & Run options to end of UI | ||
#13 | 3640 | Barrie Slaymaker |
- xmllint no longer require to build UI - UI now offers multiple choices where appropriate |
||
#12 | 3481 | John Fetkovich |
intro text moved out of state machine to bin/vcp. no longer requires user interaction to move on. |
||
#11 | 3403 | John Fetkovich |
options given on all multiple choice prompts, and most free-form prompts where it makes sense |
||
#10 | 3395 | John Fetkovich | various ui refinements | ||
#9 | 3306 | Barrie Slaymaker | Add StateML namespace support | ||
#8 | 3254 | Barrie Slaymaker | Redo machine naminf convention. | ||
#7 | 3251 | John Fetkovich | remove arc to 'convert' state | ||
#6 | 3244 | Barrie Slaymaker |
Integrate VCP::UI with bin/vcp. Type 'vcp' to run the UI. |
||
#5 | 3240 | Barrie Slaymaker | UI definition cleanup | ||
#4 | 3235 | John Fetkovich | small fixes | ||
#3 | 3231 | Barrie Slaymaker | work on STML->source code conventions | ||
#2 | 3229 | Barrie Slaymaker | Add more .stml files | ||
#1 | 3220 | Barrie Slaymaker | Rename script_machines/ to ui_machines/ |