How to add an edge with no impact? - graphviz

I have a graph (dot), which gets rendered just fine. Now I would like to add some edges, which should have no impact on the rest of the graph. Ideally the additional edges should get drawn as straight lines between nodes. And these edges should cross nodes behind the nodes.
I tried constraint=false but this does not produce a straight line.
Example: The added line is the last gray one.
digraph K3LS {
rankdir=TB;
outputorder="edgesfirst";
// States
Start [shape=plain color="#cc0000" margin=0 label=<
<table border='1' bgcolor="#ffeeee" cellborder='1'>
<tr><td colspan='4' border='0' align='right' cellpadding='0' cellspacing='10'><font point-size='6'>state</font></td></tr>
<tr><td colspan='4' border='1' color="#ffeeee" bgcolor="#ffeeee" port='_' cellpadding='4'>Start</td></tr>
<tr>
<td port='onScan' color="#00aa00" bgcolor="#ffffff" cellpadding='1' cellspacing='3'><font point-size='8'>onScan</font></td>
</tr>
</table>>];
ScanBarcode [shape=plain color="#cc0000" margin=0 label=<
<table border='1' bgcolor="#ffeeee" cellborder='1'>
<tr><td colspan='4' border='0' align='right' cellpadding='0' cellspacing='10'><font point-size='6'>state</font></td></tr>
<tr><td colspan='4' border='1' color="#ffeeee" bgcolor="#ffeeee" port='_' cellpadding='4'>ScanBarcode</td></tr>
<tr>
<td port='onSerno' color="#00aa00" bgcolor="#ffffff" cellpadding='1' cellspacing='3'><font point-size='8'>onSerno</font></td>
<td port='onScan' color="#00aa00" bgcolor="#ffffff" cellpadding='1' cellspacing='3'><font point-size='8'>onScan</font></td>
</tr>
</table>>];
HaveSerno [shape=plain color="#cc0000" margin=0 label=<
<table border='1' bgcolor="#ffeeee" cellborder='1'>
<tr><td colspan='4' border='0' align='right' cellpadding='0' cellspacing='10'><font point-size='6'>state</font></td></tr>
<tr><td colspan='4' border='1' color="#ffeeee" bgcolor="#ffeeee" port='_' cellpadding='4'>HaveSerno</td></tr>
<tr>
<td port='onScan' color="#00aa00" bgcolor="#ffffff" cellpadding='1' cellspacing='3'><font point-size='8'>onScan</font></td>
<td port='onSearch' color="#00aa00" bgcolor="#ffffff" cellpadding='1' cellspacing='3'><font point-size='8'>onSearch</font></td>
</tr>
</table>>];
SearchingIssue [shape=plain color="#cc0000" margin=0 label=<
<table border='1' bgcolor="#ffeeee" cellborder='1'>
<tr><td colspan='4' border='0' align='right' cellpadding='0' cellspacing='10'><font point-size='6'>state</font></td></tr>
<tr><td colspan='4' border='1' color="#ffeeee" bgcolor="#ffeeee" port='_' cellpadding='4'>SearchingIssue</td></tr>
<tr>
<td port='onSuccess' color="#00aa00" bgcolor="#ffffff" cellpadding='1' cellspacing='3'><font point-size='8'>onSuccess</font></td>
<td port='onError' color="#00aa00" bgcolor="#ffffff" cellpadding='1' cellspacing='3'><font point-size='8'>onError</font></td>
</tr>
</table>>];
HaveIssue [shape=plain color="#cc0000" margin=0 label=<
<table border='1' bgcolor="#ffeeee" cellborder='1'>
<tr><td colspan='4' border='0' align='right' cellpadding='0' cellspacing='10'><font point-size='6'>state</font></td></tr>
<tr><td colspan='4' border='1' color="#ffeeee" bgcolor="#ffeeee" port='_' cellpadding='4'>HaveIssue</td></tr>
<tr><td color='#ffffff00' cellpadding='1'><font point-size='8'> </font></td></tr> </table>>];
IssueError [shape=plain color="#cc0000" margin=0 label=<
<table border='1' bgcolor="#ffeeee" cellborder='1'>
<tr><td colspan='4' border='0' align='right' cellpadding='0' cellspacing='10'><font point-size='6'>state</font></td></tr>
<tr><td colspan='4' border='1' color="#ffeeee" bgcolor="#ffeeee" port='_' cellpadding='4'>IssueError</td></tr>
<tr>
<td port='onScan' color="#00aa00" bgcolor="#ffffff" cellpadding='1' cellspacing='3'><font point-size='8'>onScan</font></td>
</tr>
</table>>];
SearchingRevocation [shape=plain color="#cc0000" margin=0 label=<
<table border='1' bgcolor="#ffeeee" cellborder='1'>
<tr><td colspan='4' border='0' align='right' cellpadding='0' cellspacing='10'><font point-size='6'>state</font></td></tr>
<tr><td colspan='4' border='1' color="#ffeeee" bgcolor="#ffeeee" port='_' cellpadding='4'>SearchingRevocation</td></tr>
<tr>
<td port='onSuccess' color="#00aa00" bgcolor="#ffffff" cellpadding='1' cellspacing='3'><font point-size='8'>onSuccess</font></td>
<td port='onError' color="#00aa00" bgcolor="#ffffff" cellpadding='1' cellspacing='3'><font point-size='8'>onError</font></td>
</tr>
</table>>];
NeedRevocation [shape=plain color="#cc0000" margin=0 label=<
<table border='1' bgcolor="#ffeeee" cellborder='1'>
<tr><td colspan='4' border='0' align='right' cellpadding='0' cellspacing='10'><font point-size='6'>state</font></td></tr>
<tr><td colspan='4' border='1' color="#ffeeee" bgcolor="#ffeeee" port='_' cellpadding='4'>NeedRevocation</td></tr>
<tr>
<td port='onRevoke' color="#00aa00" bgcolor="#ffffff" cellpadding='1' cellspacing='3'><font point-size='8'>onRevoke</font></td>
<td port='onScan' color="#00aa00" bgcolor="#ffffff" cellpadding='1' cellspacing='3'><font point-size='8'>onScan</font></td>
<td port='onSearch' color="#00aa00" bgcolor="#ffffff" cellpadding='1' cellspacing='3'><font point-size='8'>onSearch</font></td>
</tr>
</table>>];
RevokingCert [shape=plain color="#cc0000" margin=0 label=<
<table border='1' bgcolor="#ffeeee" cellborder='1'>
<tr><td colspan='4' border='0' align='right' cellpadding='0' cellspacing='10'><font point-size='6'>state</font></td></tr>
<tr><td colspan='4' border='1' color="#ffeeee" bgcolor="#ffeeee" port='_' cellpadding='4'>RevokingCert</td></tr>
<tr>
<td port='onSuccess' color="#00aa00" bgcolor="#ffffff" cellpadding='1' cellspacing='3'><font point-size='8'>onSuccess</font></td>
<td port='onError' color="#00aa00" bgcolor="#ffffff" cellpadding='1' cellspacing='3'><font point-size='8'>onError</font></td>
</tr>
</table>>];
HaveRevocation [shape=plain color="#cc0000" margin=0 label=<
<table border='1' bgcolor="#ffeeee" cellborder='1'>
<tr><td colspan='4' border='0' align='right' cellpadding='0' cellspacing='10'><font point-size='6'>state</font></td></tr>
<tr><td colspan='4' border='1' color="#ffeeee" bgcolor="#ffeeee" port='_' cellpadding='4'>HaveRevocation</td></tr>
<tr><td color='#ffffff00' cellpadding='1'><font point-size='8'> </font></td></tr> </table>>];
SearchingAffirmation [shape=plain color="#cc0000" margin=0 label=<
<table border='1' bgcolor="#ffeeee" cellborder='1'>
<tr><td colspan='4' border='0' align='right' cellpadding='0' cellspacing='10'><font point-size='6'>state</font></td></tr>
<tr><td colspan='4' border='1' color="#ffeeee" bgcolor="#ffeeee" port='_' cellpadding='4'>SearchingAffirmation</td></tr>
<tr>
<td port='onSuccess' color="#00aa00" bgcolor="#ffffff" cellpadding='1' cellspacing='3'><font point-size='8'>onSuccess</font></td>
<td port='onError' color="#00aa00" bgcolor="#ffffff" cellpadding='1' cellspacing='3'><font point-size='8'>onError</font></td>
</tr>
</table>>];
NeedAffirmation [shape=plain color="#cc0000" margin=0 label=<
<table border='1' bgcolor="#ffeeee" cellborder='1'>
<tr><td colspan='4' border='0' align='right' cellpadding='0' cellspacing='10'><font point-size='6'>state</font></td></tr>
<tr><td colspan='4' border='1' color="#ffeeee" bgcolor="#ffeeee" port='_' cellpadding='4'>NeedAffirmation</td></tr>
<tr>
<td port='onAffirm' color="#00aa00" bgcolor="#ffffff" cellpadding='1' cellspacing='3'><font point-size='8'>onAffirm</font></td>
<td port='onScan' color="#00aa00" bgcolor="#ffffff" cellpadding='1' cellspacing='3'><font point-size='8'>onScan</font></td>
<td port='onSearch' color="#00aa00" bgcolor="#ffffff" cellpadding='1' cellspacing='3'><font point-size='8'>onSearch</font></td>
</tr>
</table>>];
AffirmingReturn [shape=plain color="#cc0000" margin=0 label=<
<table border='1' bgcolor="#ffeeee" cellborder='1'>
<tr><td colspan='4' border='0' align='right' cellpadding='0' cellspacing='10'><font point-size='6'>state</font></td></tr>
<tr><td colspan='4' border='1' color="#ffeeee" bgcolor="#ffeeee" port='_' cellpadding='4'>AffirmingReturn</td></tr>
<tr>
<td port='onSuccess' color="#00aa00" bgcolor="#ffffff" cellpadding='1' cellspacing='3'><font point-size='8'>onSuccess</font></td>
<td port='onError' color="#00aa00" bgcolor="#ffffff" cellpadding='1' cellspacing='3'><font point-size='8'>onError</font></td>
</tr>
</table>>];
HaveAffirmation [shape=plain color="#cc0000" margin=0 label=<
<table border='1' bgcolor="#ffeeee" cellborder='1'>
<tr><td colspan='4' border='0' align='right' cellpadding='0' cellspacing='10'><font point-size='6'>state</font></td></tr>
<tr><td colspan='4' border='1' color="#ffeeee" bgcolor="#ffeeee" port='_' cellpadding='4'>HaveAffirmation</td></tr>
<tr>
<td port='onScan' color="#00aa00" bgcolor="#ffffff" cellpadding='1' cellspacing='3'><font point-size='8'>onScan</font></td>
</tr>
</table>>];
// Composables
ShowUsage [shape=plain color="#aa00ee" margin=0 label=<
<table border='0' cellborder='1'>
<tr><td colspan='4' border='0' align='right' cellpadding='0' cellspacing='10'><font point-size='6'>composable</font></td></tr>
<tr><td colspan='4' border='1' color="#aa00ee" bgcolor="#ffeeff" port='_' cellpadding='4'>ShowUsage</td></tr>
<tr><td color='#ffffff00' cellpadding='1'><font point-size='8'> </font></td></tr> </table>>];
ShowBarcodeScanner [shape=plain color="#aa00ee" margin=0 label=<
<table border='0' cellborder='1'>
<tr><td colspan='4' border='0' align='right' cellpadding='0' cellspacing='10'><font point-size='6'>composable</font></td></tr>
<tr><td colspan='4' border='1' color="#aa00ee" bgcolor="#ffeeff" port='_' cellpadding='4'>ShowBarcodeScanner</td></tr>
<tr><td color='#ffffff00' cellpadding='1'><font point-size='8'> </font></td></tr> </table>>];
ShowSerno [shape=plain color="#aa00ee" margin=0 label=<
<table border='0' cellborder='1'>
<tr><td colspan='4' border='0' align='right' cellpadding='0' cellspacing='10'><font point-size='6'>composable</font></td></tr>
<tr><td colspan='4' border='1' color="#aa00ee" bgcolor="#ffeeff" port='_' cellpadding='4'><u>ShowSerno</u></td></tr>
<tr><td color='#ffffff00' cellpadding='1'><font point-size='8'> </font></td></tr> </table>>];
SearchIssue [shape=plain color="#aa00ee" margin=0 label=<
<table border='0' cellborder='1'>
<tr><td colspan='4' border='0' align='right' cellpadding='0' cellspacing='10'><font point-size='6'>composable</font></td></tr>
<tr><td colspan='4' border='1' color="#aa00ee" bgcolor="#ffeeff" port='_' cellpadding='4'>SearchIssue</td></tr>
<tr><td color='#ffffff00' cellpadding='1'><font point-size='8'> </font></td></tr> </table>>];
ShowIssueError [shape=plain color="#aa00ee" margin=0 label=<
<table border='0' cellborder='1'>
<tr><td colspan='4' border='0' align='right' cellpadding='0' cellspacing='10'><font point-size='6'>composable</font></td></tr>
<tr><td colspan='4' border='1' color="#aa00ee" bgcolor="#ffeeff" port='_' cellpadding='4'>ShowIssueError</td></tr>
<tr><td color='#ffffff00' cellpadding='1'><font point-size='8'> </font></td></tr> </table>>];
ShowIssue [shape=plain color="#aa00ee" margin=0 label=<
<table border='0' cellborder='1'>
<tr><td colspan='4' border='0' align='right' cellpadding='0' cellspacing='10'><font point-size='6'>composable</font></td></tr>
<tr><td colspan='4' border='1' color="#aa00ee" bgcolor="#ffeeff" port='_' cellpadding='4'><u>ShowIssue</u></td></tr>
<tr><td color='#ffffff00' cellpadding='1'><font point-size='8'> </font></td></tr> </table>>];
SearchRevocation [shape=plain color="#aa00ee" margin=0 label=<
<table border='0' cellborder='1'>
<tr><td colspan='4' border='0' align='right' cellpadding='0' cellspacing='10'><font point-size='6'>composable</font></td></tr>
<tr><td colspan='4' border='1' color="#aa00ee" bgcolor="#ffeeff" port='_' cellpadding='4'>SearchRevocation</td></tr>
<tr><td color='#ffffff00' cellpadding='1'><font point-size='8'> </font></td></tr> </table>>];
ShowRevocation [shape=plain color="#aa00ee" margin=0 label=<
<table border='0' cellborder='1'>
<tr><td colspan='4' border='0' align='right' cellpadding='0' cellspacing='10'><font point-size='6'>composable</font></td></tr>
<tr><td colspan='4' border='1' color="#aa00ee" bgcolor="#ffeeff" port='_' cellpadding='4'><u>ShowRevocation</u></td></tr>
<tr><td color='#ffffff00' cellpadding='1'><font point-size='8'> </font></td></tr> </table>>];
RevokeCert [shape=plain color="#aa00ee" margin=0 label=<
<table border='0' cellborder='1'>
<tr><td colspan='4' border='0' align='right' cellpadding='0' cellspacing='10'><font point-size='6'>composable</font></td></tr>
<tr><td colspan='4' border='1' color="#aa00ee" bgcolor="#ffeeff" port='_' cellpadding='4'>RevokeCert</td></tr>
<tr><td color='#ffffff00' cellpadding='1'><font point-size='8'> </font></td></tr> </table>>];
SearchAffirmation [shape=plain color="#aa00ee" margin=0 label=<
<table border='0' cellborder='1'>
<tr><td colspan='4' border='0' align='right' cellpadding='0' cellspacing='10'><font point-size='6'>composable</font></td></tr>
<tr><td colspan='4' border='1' color="#aa00ee" bgcolor="#ffeeff" port='_' cellpadding='4'>SearchAffirmation</td></tr>
<tr><td color='#ffffff00' cellpadding='1'><font point-size='8'> </font></td></tr> </table>>];
AffirmReturn [shape=plain color="#aa00ee" margin=0 label=<
<table border='0' cellborder='1'>
<tr><td colspan='4' border='0' align='right' cellpadding='0' cellspacing='10'><font point-size='6'>composable</font></td></tr>
<tr><td colspan='4' border='1' color="#aa00ee" bgcolor="#ffeeff" port='_' cellpadding='4'>AffirmReturn</td></tr>
<tr><td color='#ffffff00' cellpadding='1'><font point-size='8'> </font></td></tr> </table>>];
ShowAffirmation [shape=plain color="#aa00ee" margin=0 label=<
<table border='0' cellborder='1'>
<tr><td colspan='4' border='0' align='right' cellpadding='0' cellspacing='10'><font point-size='6'>composable</font></td></tr>
<tr><td colspan='4' border='1' color="#aa00ee" bgcolor="#ffeeff" port='_' cellpadding='4'><u>ShowAffirmation</u></td></tr>
<tr><td color='#ffffff00' cellpadding='1'><font point-size='8'> </font></td></tr> </table>>];
// Coroutines
BarcodeAnalyzer [shape=plain color="#0000cc" margin=0 label=<
<table border='0' cellborder='1'>
<tr><td colspan='4' border='0' align='right' cellpadding='0' cellspacing='10'><font point-size='6'>coroutine</font></td></tr>
<tr><td colspan='4' border='1' color="#0000cc" bgcolor="#eeeeff" port='_' cellpadding='4'>BarcodeAnalyzer</td></tr>
<tr><td color='#ffffff00' cellpadding='1'><font point-size='8'> </font></td></tr> </table>>];
JiraSearchIssue [shape=plain color="#0000cc" margin=0 label=<
<table border='0' cellborder='1'>
<tr><td colspan='4' border='0' align='right' cellpadding='0' cellspacing='10'><font point-size='6'>coroutine</font></td></tr>
<tr><td colspan='4' border='1' color="#0000cc" bgcolor="#eeeeff" port='_' cellpadding='4'>JiraSearchIssue</td></tr>
<tr><td color='#ffffff00' cellpadding='1'><font point-size='8'> </font></td></tr> </table>>];
JiraSearchRevocation [shape=plain color="#0000cc" margin=0 label=<
<table border='0' cellborder='1'>
<tr><td colspan='4' border='0' align='right' cellpadding='0' cellspacing='10'><font point-size='6'>coroutine</font></td></tr>
<tr><td colspan='4' border='1' color="#0000cc" bgcolor="#eeeeff" port='_' cellpadding='4'>JiraSearchRevocation</td></tr>
<tr><td color='#ffffff00' cellpadding='1'><font point-size='8'> </font></td></tr> </table>>];
JiraSearchAffirmation [shape=plain color="#0000cc" margin=0 label=<
<table border='0' cellborder='1'>
<tr><td colspan='4' border='0' align='right' cellpadding='0' cellspacing='10'><font point-size='6'>coroutine</font></td></tr>
<tr><td colspan='4' border='1' color="#0000cc" bgcolor="#eeeeff" port='_' cellpadding='4'>JiraSearchAffirmation</td></tr>
<tr><td color='#ffffff00' cellpadding='1'><font point-size='8'> </font></td></tr> </table>>];
JiraRevokeCert [shape=plain color="#0000cc" margin=0 label=<
<table border='0' cellborder='1'>
<tr><td colspan='4' border='0' align='right' cellpadding='0' cellspacing='10'><font point-size='6'>coroutine</font></td></tr>
<tr><td colspan='4' border='1' color="#0000cc" bgcolor="#eeeeff" port='_' cellpadding='4'>JiraRevokeCert</td></tr>
<tr><td color='#ffffff00' cellpadding='1'><font point-size='8'> </font></td></tr> </table>>];
JiraAffirmReturn [shape=plain color="#0000cc" margin=0 label=<
<table border='0' cellborder='1'>
<tr><td colspan='4' border='0' align='right' cellpadding='0' cellspacing='10'><font point-size='6'>coroutine</font></td></tr>
<tr><td colspan='4' border='1' color="#0000cc" bgcolor="#eeeeff" port='_' cellpadding='4'>JiraAffirmReturn</td></tr>
<tr><td color='#ffffff00' cellpadding='1'><font point-size='8'> </font></td></tr> </table>>];
// Calls aiming a Composable
{ rank=same; Start ShowUsage }
Start:_:e -> ShowUsage:_:w [arrowhead=onormal minlen=2];
{ rank=same; ScanBarcode ShowBarcodeScanner }
ScanBarcode:_:e -> ShowBarcodeScanner:_:w [arrowhead=onormal minlen=2];
{ rank=same; HaveSerno ShowSerno }
HaveSerno:_:e -> ShowSerno:_:w [arrowhead=onormal minlen=2];
{ rank=same; SearchingIssue SearchIssue }
SearchingIssue:_:e -> SearchIssue:_:w [arrowhead=onormal minlen=2];
{ rank=same; IssueError ShowIssueError }
IssueError:_:e -> ShowIssueError:_:w [arrowhead=onormal minlen=2];
{ rank=same; HaveIssue ShowIssue }
HaveIssue:_:e -> ShowIssue:_:w [arrowhead=onormal minlen=2];
{ rank=same; SearchingRevocation SearchRevocation }
SearchingRevocation:_:e -> SearchRevocation:_:w [arrowhead=onormal minlen=2];
{ rank=same; RevokingCert RevokeCert }
RevokingCert:_:e -> RevokeCert:_:w [arrowhead=onormal minlen=2];
{ rank=same; HaveRevocation ShowRevocation }
HaveRevocation:_:e -> ShowRevocation:_:w [arrowhead=onormal minlen=2];
{ rank=same; SearchingAffirmation SearchAffirmation }
SearchingAffirmation:_:e -> SearchAffirmation:_:w [arrowhead=onormal minlen=2];
{ rank=same; AffirmingReturn AffirmReturn }
AffirmingReturn:_:e -> AffirmReturn:_:w [arrowhead=onormal minlen=2];
{ rank=same; HaveAffirmation ShowAffirmation }
HaveAffirmation:_:e -> ShowAffirmation:_:w [arrowhead=onormal minlen=2];
// Launches aiming a Coroutine
{ rank=same; ShowBarcodeScanner BarcodeAnalyzer }
ShowBarcodeScanner:_:e -> BarcodeAnalyzer:_:w [arrowhead=odiamond minlen=2];
{ rank=same; SearchIssue JiraSearchIssue }
SearchIssue:_:e -> JiraSearchIssue:_:w [arrowhead=odiamond minlen=2];
{ rank=same; SearchRevocation JiraSearchRevocation }
SearchRevocation:_:e -> JiraSearchRevocation:_:w [arrowhead=odiamond minlen=2];
{ rank=same; RevokeCert JiraRevokeCert }
RevokeCert:_:e -> JiraRevokeCert:_:w [arrowhead=odiamond minlen=2];
{ rank=same; SearchAffirmation JiraSearchAffirmation }
SearchAffirmation:_:e -> JiraSearchAffirmation:_:w [arrowhead=odiamond minlen=2];
{ rank=same; AffirmReturn JiraAffirmReturn }
AffirmReturn:_:e -> JiraAffirmReturn:_:w [arrowhead=odiamond minlen=2];
// Transitions aiming a State
Start:onScan:s -> ScanBarcode [arrowhead=normal];
ScanBarcode:onSerno:s -> HaveSerno [arrowhead=normal];
ScanBarcode:onScan:s -> Start [arrowhead=normal];
HaveSerno:onSearch:s -> SearchingIssue [arrowhead=normal];
SearchingIssue:onError:s -> IssueError [arrowhead=normal];
SearchingIssue:onSuccess:s -> HaveIssue [arrowhead=normal];
HaveIssue:_:s -> SearchingRevocation [arrowhead=normal];
SearchingRevocation:onSuccess:s -> HaveRevocation [arrowhead=normal];
SearchingRevocation:onError:s -> NeedRevocation [arrowhead=normal];
NeedRevocation:onRevoke:s -> RevokingCert [arrowhead=normal];
RevokingCert:onSuccess:s -> HaveRevocation [arrowhead=normal];
RevokingCert:onError:s -> NeedRevocation [arrowhead=normal];
HaveRevocation:_:s -> SearchingAffirmation [arrowhead=normal];
SearchingAffirmation:onSuccess:s -> HaveAffirmation [arrowhead=normal];
SearchingAffirmation:onError:s -> NeedAffirmation [arrowhead=normal];
NeedAffirmation:onAffirm:s -> AffirmingReturn [arrowhead=normal];
AffirmingReturn:onSuccess:s -> HaveAffirmation [arrowhead=normal];
AffirmingReturn:onError:s -> NeedAffirmation [arrowhead=normal];
// Additional line without impact.
HaveSerno -> IssueError [constraint=false color="#aaaaaa" dir=back arrowtail=onormal style=dashed];
}

The "easiest" way is to do this in a few steps
remove the new edges from your input
run this command dot myfile.gv >myfile.dot # This lays out all the nodes and "old" edges
edit myfile.dot and add the new edges (at the end of the file, but inside the last brace)
run neato -n2 -Tpng myfile.dot >myfile.png # adds the "new" edges, with splines=false (neato default)
For more info, see http://www.graphviz.org/faq/#FaqDotWithCoords
Here is the file I called myfile.dot. Note that it has position data for all the nodes and edges except the one that was by hand editing.
digraph K3LS {
graph [bb="0,0,598.5,1147",
outputorder=edgesfirst,
rankdir=TB
];
node [label="\N"];
{
graph [rank=same];
Start [color="#cc0000",
height=0.76389,
label=<
<table border='1' bgcolor="#ffeeee" cellborder='1'>
<tr><td colspan='4' border='0' align='right' cellpadding='0' cellspacing='10'><font point-size='6'>state</font></td></tr>
<tr><td colspan='4' border='1' color="#ffeeee" bgcolor="#ffeeee" port='_' cellpadding='4'>Start</td></tr>
<tr>
<td port='onScan' color="#00aa00" bgcolor="#ffffff" cellpadding='1' cellspacing='3'><font point-size='8'>onScan</font></td>
</tr>
</table>>,
margin=0,
pos="236,1119.5",
shape=plain,
width=0.66667];
ShowUsage [color="#aa00ee",
height=0.73611,
label=<
<table border='0' cellborder='1'>
<tr><td colspan='4' border='0' align='right' cellpadding='0' cellspacing='10'><font point-size='6'>composable</font></td></tr>
<tr><td colspan='4' border='1' color="#aa00ee" bgcolor="#ffeeff" port='_' cellpadding='4'>ShowUsage</td></tr>
<tr><td color='#ffffff00' cellpadding='1'><font point-size='8'> </font></td></tr> </table>>,
margin=0,
pos="338,1119.5",
shape=plain,
width=1.1806];
}
{
graph [rank=same];
ScanBarcode [color="#cc0000",
height=0.76389,
label=<
<table border='1' bgcolor="#ffeeee" cellborder='1'>
<tr><td colspan='4' border='0' align='right' cellpadding='0' cellspacing='10'><font point-size='6'>state</font></td></tr>
<tr><td colspan='4' border='1' color="#ffeeee" bgcolor="#ffeeee" port='_' cellpadding='4'>ScanBarcode</td></tr>
<tr>
<td port='onSerno' color="#00aa00" bgcolor="#ffffff" cellpadding='1' cellspacing='3'><font point-size='8'>onSerno</font></td>
<td port='onScan' color="#00aa00" bgcolor="#ffffff" cellpadding='1' cellspacing='3'><font point-size='8'>onScan</font></td>
</tr>
</table>>,
margin=0,
pos="225,1028.5",
shape=plain,
width=1.3056];
ShowBarcodeScanner [color="#aa00ee",
height=0.73611,
label=<
<table border='0' cellborder='1'>
<tr><td colspan='4' border='0' align='right' cellpadding='0' cellspacing='10'><font point-size='6'>composable</font></td></tr>
<tr><td colspan='4' border='1' color="#aa00ee" bgcolor="#ffeeff" port='_' cellpadding='4'>ShowBarcodeScanner</td></tr>
<tr><td color='#ffffff00' cellpadding='1'><font point-size='8'> </font></td></tr> </table>>,
margin=0,
pos="378,1028.5",
shape=plain,
width=1.9444];
}
{
graph [rank=same];
HaveSerno [color="#cc0000",
height=0.76389,
label=<
<table border='1' bgcolor="#ffeeee" cellborder='1'>
<tr><td colspan='4' border='0' align='right' cellpadding='0' cellspacing='10'><font point-size='6'>state</font></td></tr>
<tr><td colspan='4' border='1' color="#ffeeee" bgcolor="#ffeeee" port='_' cellpadding='4'>HaveSerno</td></tr>
<tr>
<td port='onScan' color="#00aa00" bgcolor="#ffffff" cellpadding='1' cellspacing='3'><font point-size='8'>onScan</font></td>
<td port='onSearch' color="#00aa00" bgcolor="#ffffff" cellpadding='1' cellspacing='3'><font point-size='8'>onSearch</font></td>
</tr>
</table>>,
margin=0,
pos="202,937.5",
shape=plain,
width=1.1528];
ShowSerno [color="#aa00ee",
height=0.73611,
label=<
<table border='0' cellborder='1'>
<tr><td colspan='4' border='0' align='right' cellpadding='0' cellspacing='10'><font point-size='6'>composable</font></td></tr>
<tr><td colspan='4' border='1' color="#aa00ee" bgcolor="#ffeeff" port='_' cellpadding='4'><u>ShowSerno</u></td></tr>
<tr><td color='#ffffff00' cellpadding='1'><font point-size='8'> </font></td></tr> </table>>,
margin=0,
pos="321,937.5",
shape=plain,
width=1.1528];
}
{
graph [rank=same];
SearchingIssue [color="#cc0000",
height=0.76389,
label=<
<table border='1' bgcolor="#ffeeee" cellborder='1'>
<tr><td colspan='4' border='0' align='right' cellpadding='0' cellspacing='10'><font point-size='6'>state</font></td></tr>
<tr><td colspan='4' border='1' color="#ffeeee" bgcolor="#ffeeee" port='_' cellpadding='4'>SearchingIssue</td></tr>
<tr>
<td port='onSuccess' color="#00aa00" bgcolor="#ffffff" cellpadding='1' cellspacing='3'><font point-size='8'>onSuccess</font></td>
<td port='onError' color="#00aa00" bgcolor="#ffffff" cellpadding='1' cellspacing='3'><font point-size='8'>onError</font></td>
</tr>
</table>>,
margin=0,
pos="217,846.5",
shape=plain,
width=1.4444];
SearchIssue [color="#aa00ee",
height=0.73611,
label=<
<table border='0' cellborder='1'>
<tr><td colspan='4' border='0' align='right' cellpadding='0' cellspacing='10'><font point-size='6'>composable</font></td></tr>
<tr><td colspan='4' border='1' color="#aa00ee" bgcolor="#ffeeff" port='_' cellpadding='4'>SearchIssue</td></tr>
<tr><td color='#ffffff00' cellpadding='1'><font point-size='8'> </font></td></tr> </table>>,
margin=0,
pos="347,846.5",
shape=plain,
width=1.1806];
}
{
graph [rank=same];
IssueError [color="#cc0000",
height=0.76389,
label=<
<table border='1' bgcolor="#ffeeee" cellborder='1'>
<tr><td colspan='4' border='0' align='right' cellpadding='0' cellspacing='10'><font point-size='6'>state</font></td></tr>
<tr><td colspan='4' border='1' color="#ffeeee" bgcolor="#ffeeee" port='_' cellpadding='4'>IssueError</td></tr>
<tr>
<td port='onScan' color="#00aa00" bgcolor="#ffffff" cellpadding='1' cellspacing='3'><font point-size='8'>onScan</font></td>
</tr>
</table>>,
margin=0,
pos="321,755.5",
shape=plain,
width=1.0972];
ShowIssueError [color="#aa00ee",
height=0.73611,
label=<
<table border='0' cellborder='1'>
<tr><td colspan='4' border='0' align='right' cellpadding='0' cellspacing='10'><font point-size='6'>composable</font></td></tr>
<tr><td colspan='4' border='1' color="#aa00ee" bgcolor="#ffeeff" port='_' cellpadding='4'>ShowIssueError</td></tr>
<tr><td color='#ffffff00' cellpadding='1'><font point-size='8'> </font></td></tr> </table>>,
margin=0,
pos="450,755.5",
shape=plain,
width=1.5];
}
{
graph [rank=same];
HaveIssue [color="#cc0000",
height=0.76389,
label=<
<table border='1' bgcolor="#ffeeee" cellborder='1'>
<tr><td colspan='4' border='0' align='right' cellpadding='0' cellspacing='10'><font point-size='6'>state</font></td></tr>
<tr><td colspan='4' border='1' color="#ffeeee" bgcolor="#ffeeee" port='_' cellpadding='4'>HaveIssue</td></tr>
<tr><td color='#ffffff00' cellpadding='1'><font point-size='8'> </font></td></tr> </table>>,
margin=0,
pos="110,755.5",
shape=plain,
width=1.0972];
ShowIssue [color="#aa00ee",
height=0.73611,
label=<
<table border='0' cellborder='1'>
<tr><td colspan='4' border='0' align='right' cellpadding='0' cellspacing='10'><font point-size='6'>composable</font></td></tr>
<tr><td colspan='4' border='1' color="#aa00ee" bgcolor="#ffeeff" port='_' cellpadding='4'><u>ShowIssue</u></td></tr>
<tr><td color='#ffffff00' cellpadding='1'><font point-size='8'> </font></td></tr> </table>>,
margin=0,
pos="224,755.5",
shape=plain,
width=1.0972];
}
{
graph [rank=same];
SearchingRevocation [color="#cc0000",
height=0.76389,
label=<
<table border='1' bgcolor="#ffeeee" cellborder='1'>
<tr><td colspan='4' border='0' align='right' cellpadding='0' cellspacing='10'><font point-size='6'>state</font></td></tr>
<tr><td colspan='4' border='1' color="#ffeeee" bgcolor="#ffeeee" port='_' cellpadding='4'>SearchingRevocation</td></tr>
<tr>
<td port='onSuccess' color="#00aa00" bgcolor="#ffffff" cellpadding='1' cellspacing='3'><font point-size='8'>onSuccess</font></td>
<td port='onError' color="#00aa00" bgcolor="#ffffff" cellpadding='1' cellspacing='3'><font point-size='8'>onError</font></td>
</tr>
</table>>,
margin=0,
pos="111,664.5",
shape=plain,
width=1.9167];
SearchRevocation [color="#aa00ee",
height=0.73611,
label=<
<table border='0' cellborder='1'>
<tr><td colspan='4' border='0' align='right' cellpadding='0' cellspacing='10'><font point-size='6'>composable</font></td></tr>
<tr><td colspan='4' border='1' color="#aa00ee" bgcolor="#ffeeff" port='_' cellpadding='4'>SearchRevocation</td></tr>
<tr><td color='#ffffff00' cellpadding='1'><font point-size='8'> </font></td></tr> </table>>,
margin=0,
pos="275,664.5",
shape=plain,
width=1.6528];
}
{
graph [rank=same];
RevokingCert [color="#cc0000",
height=0.76389,
label=<
<table border='1' bgcolor="#ffeeee" cellborder='1'>
<tr><td colspan='4' border='0' align='right' cellpadding='0' cellspacing='10'><font point-size='6'>state</font></td></tr>
<tr><td colspan='4' border='1' color="#ffeeee" bgcolor="#ffeeee" port='_' cellpadding='4'>RevokingCert</td></tr>
<tr>
<td port='onSuccess' color="#00aa00" bgcolor="#ffffff" cellpadding='1' cellspacing='3'><font point-size='8'>onSuccess</font></td>
<td port='onError' color="#00aa00" bgcolor="#ffffff" cellpadding='1' cellspacing='3'><font point-size='8'>onError</font></td>
</tr>
</table>>,
margin=0,
pos="136,482.5",
shape=plain,
width=1.3611];
RevokeCert [color="#aa00ee",
height=0.73611,
label=<
<table border='0' cellborder='1'>
<tr><td colspan='4' border='0' align='right' cellpadding='0' cellspacing='10'><font point-size='6'>composable</font></td></tr>
<tr><td colspan='4' border='1' color="#aa00ee" bgcolor="#ffeeff" port='_' cellpadding='4'>RevokeCert</td></tr>
<tr><td color='#ffffff00' cellpadding='1'><font point-size='8'> </font></td></tr> </table>>,
margin=0,
pos="263,482.5",
shape=plain,
width=1.1806];
}
{
graph [rank=same];
HaveRevocation [color="#cc0000",
height=0.76389,
label=<
<table border='1' bgcolor="#ffeeee" cellborder='1'>
<tr><td colspan='4' border='0' align='right' cellpadding='0' cellspacing='10'><font point-size='6'>state</font></td></tr>
<tr><td colspan='4' border='1' color="#ffeeee" bgcolor="#ffeeee" port='_' cellpadding='4'>HaveRevocation</td></tr>
<tr><td color='#ffffff00' cellpadding='1'><font point-size='8'> </font></td></tr> </table>>,
margin=0,
pos="86,391.5",
shape=plain,
width=1.5694];
ShowRevocation [color="#aa00ee",
height=0.73611,
label=<
<table border='0' cellborder='1'>
<tr><td colspan='4' border='0' align='right' cellpadding='0' cellspacing='10'><font point-size='6'>composable</font></td></tr>
<tr><td colspan='4' border='1' color="#aa00ee" bgcolor="#ffeeff" port='_' cellpadding='4'><u>ShowRevocation</u></td></tr>
<tr><td color='#ffffff00' cellpadding='1'><font point-size='8'> </font></td></tr> </table>>,
margin=0,
pos="235,391.5",
shape=plain,
width=1.5694];
}
{
graph [rank=same];
SearchingAffirmation [color="#cc0000",
height=0.76389,
label=<
<table border='1' bgcolor="#ffeeee" cellborder='1'>
<tr><td colspan='4' border='0' align='right' cellpadding='0' cellspacing='10'><font point-size='6'>state</font></td></tr>
<tr><td colspan='4' border='1' color="#ffeeee" bgcolor="#ffeeee" port='_' cellpadding='4'>SearchingAffirmation</td></tr>
<tr>
<td port='onSuccess' color="#00aa00" bgcolor="#ffffff" cellpadding='1' cellspacing='3'><font point-size='8'>onSuccess</font></td>
<td port='onError' color="#00aa00" bgcolor="#ffffff" cellpadding='1' cellspacing='3'><font point-size='8'>onError</font></td>
</tr>
</table>>,
margin=0,
pos="87,300.5",
shape=plain,
width=1.9722];
SearchAffirmation [color="#aa00ee",
height=0.73611,
label=<
<table border='0' cellborder='1'>
<tr><td colspan='4' border='0' align='right' cellpadding='0' cellspacing='10'><font point-size='6'>composable</font></td></tr>
<tr><td colspan='4' border='1' color="#aa00ee" bgcolor="#ffeeff" port='_' cellpadding='4'>SearchAffirmation</td></tr>
<tr><td color='#ffffff00' cellpadding='1'><font point-size='8'> </font></td></tr> </table>>,
margin=0,
pos="255,300.5",
shape=plain,
width=1.7083];
}
{
graph [rank=same];
AffirmingReturn [color="#cc0000",
height=0.76389,
label=<
<table border='1' bgcolor="#ffeeee" cellborder='1'>
<tr><td colspan='4' border='0' align='right' cellpadding='0' cellspacing='10'><font point-size='6'>state</font></td></tr>
<tr><td colspan='4' border='1' color="#ffeeee" bgcolor="#ffeeee" port='_' cellpadding='4'>AffirmingReturn</td></tr>
<tr>
<td port='onSuccess' color="#00aa00" bgcolor="#ffffff" cellpadding='1' cellspacing='3'><font point-size='8'>onSuccess</font></td>
<td port='onError' color="#00aa00" bgcolor="#ffffff" cellpadding='1' cellspacing='3'><font point-size='8'>onError</font></td>
</tr>
</table>>,
margin=0,
pos="115,118.5",
shape=plain,
width=1.5972];
AffirmReturn [color="#aa00ee",
height=0.73611,
label=<
<table border='0' cellborder='1'>
<tr><td colspan='4' border='0' align='right' cellpadding='0' cellspacing='10'><font point-size='6'>composable</font></td></tr>
<tr><td colspan='4' border='1' color="#aa00ee" bgcolor="#ffeeff" port='_' cellpadding='4'>AffirmReturn</td></tr>
<tr><td color='#ffffff00' cellpadding='1'><font point-size='8'> </font></td></tr> </table>>,
margin=0,
pos="256,118.5",
shape=plain,
width=1.3333];
}
{
graph [rank=same];
HaveAffirmation [color="#cc0000",
height=0.76389,
label=<
<table border='1' bgcolor="#ffeeee" cellborder='1'>
<tr><td colspan='4' border='0' align='right' cellpadding='0' cellspacing='10'><font point-size='6'>state</font></td></tr>
<tr><td colspan='4' border='1' color="#ffeeee" bgcolor="#ffeeee" port='_' cellpadding='4'>HaveAffirmation</td></tr>
<tr>
<td port='onScan' color="#00aa00" bgcolor="#ffffff" cellpadding='1' cellspacing='3'><font point-size='8'>onScan</font></td>
</tr>
</table>>,
margin=0,
pos="58,27.5",
shape=plain,
width=1.6111];
ShowAffirmation [color="#aa00ee",
height=0.73611,
label=<
<table border='0' cellborder='1'>
<tr><td colspan='4' border='0' align='right' cellpadding='0' cellspacing='10'><font point-size='6'>composable</font></td></tr>
<tr><td colspan='4' border='1' color="#aa00ee" bgcolor="#ffeeff" port='_' cellpadding='4'><u>ShowAffirmation</u></td></tr>
<tr><td color='#ffffff00' cellpadding='1'><font point-size='8'> </font></td></tr> </table>>,
margin=0,
pos="210,27.5",
shape=plain,
width=1.625];
}
{
graph [rank=same];
ShowBarcodeScanner;
BarcodeAnalyzer [color="#0000cc",
height=0.73611,
label=<
<table border='0' cellborder='1'>
<tr><td colspan='4' border='0' align='right' cellpadding='0' cellspacing='10'><font point-size='6'>coroutine</font></td></tr>
<tr><td colspan='4' border='1' color="#0000cc" bgcolor="#eeeeff" port='_' cellpadding='4'>BarcodeAnalyzer</td></tr>
<tr><td color='#ffffff00' cellpadding='1'><font point-size='8'> </font></td></tr> </table>>,
margin=0,
pos="541,1028.5",
shape=plain,
width=1.5972];
}
{
graph [rank=same];
SearchIssue;
JiraSearchIssue [color="#0000cc",
height=0.73611,
label=<
<table border='0' cellborder='1'>
<tr><td colspan='4' border='0' align='right' cellpadding='0' cellspacing='10'><font point-size='6'>coroutine</font></td></tr>
<tr><td colspan='4' border='1' color="#0000cc" bgcolor="#eeeeff" port='_' cellpadding='4'>JiraSearchIssue</td></tr>
<tr><td color='#ffffff00' cellpadding='1'><font point-size='8'> </font></td></tr> </table>>,
margin=0,
pos="478,846.5",
shape=plain,
width=1.4583];
}
{
graph [rank=same];
SearchRevocation;
JiraSearchRevocation [color="#0000cc",
height=0.73611,
label=<
<table border='0' cellborder='1'>
<tr><td colspan='4' border='0' align='right' cellpadding='0' cellspacing='10'><font point-size='6'>coroutine</font></td></tr>
<tr><td colspan='4' border='1' color="#0000cc" bgcolor="#eeeeff" port='_' cellpadding='4'>JiraSearchRevocation</td></tr>
<tr><td color='#ffffff00' cellpadding='1'><font point-size='8'> </font></td></tr> </table>>,
margin=0,
pos="439,664.5",
shape=plain,
width=1.9167];
}
{
graph [rank=same];
RevokeCert;
JiraRevokeCert [color="#0000cc",
height=0.73611,
label=<
<table border='0' cellborder='1'>
<tr><td colspan='4' border='0' align='right' cellpadding='0' cellspacing='10'><font point-size='6'>coroutine</font></td></tr>
<tr><td colspan='4' border='1' color="#0000cc" bgcolor="#eeeeff" port='_' cellpadding='4'>JiraRevokeCert</td></tr>
<tr><td color='#ffffff00' cellpadding='1'><font point-size='8'> </font></td></tr> </table>>,
margin=0,
pos="394,482.5",
shape=plain,
width=1.4583];
}
{
graph [rank=same];
SearchAffirmation;
JiraSearchAffirmation [color="#0000cc",
height=0.73611,
label=<
<table border='0' cellborder='1'>
<tr><td colspan='4' border='0' align='right' cellpadding='0' cellspacing='10'><font point-size='6'>coroutine</font></td></tr>
<tr><td colspan='4' border='1' color="#0000cc" bgcolor="#eeeeff" port='_' cellpadding='4'>JiraSearchAffirmation</td></tr>
<tr><td color='#ffffff00' cellpadding='1'><font point-size='8'> </font></td></tr> </table>>,
margin=0,
pos="423,300.5",
shape=plain,
width=1.9722];
}
{
graph [rank=same];
AffirmReturn;
JiraAffirmReturn [color="#0000cc",
height=0.73611,
label=<
<table border='0' cellborder='1'>
<tr><td colspan='4' border='0' align='right' cellpadding='0' cellspacing='10'><font point-size='6'>coroutine</font></td></tr>
<tr><td colspan='4' border='1' color="#0000cc" bgcolor="#eeeeff" port='_' cellpadding='4'>JiraAffirmReturn</td></tr>
<tr><td color='#ffffff00' cellpadding='1'><font point-size='8'> </font></td></tr> </table>>,
margin=0,
pos="397,118.5",
shape=plain,
width=1.5972];
}
Start:onScan:s -> ScanBarcode [arrowhead=normal,
pos="e,228.63,1056.2 231,1093.5 231,1084.7 230.43,1075.2 229.64,1066.3"];
Start:_:e -> ShowUsage:_:w [arrowhead=onormal,
minlen=2,
pos="e,297,1122.5 258,1122.5 271.41,1122.5 277.04,1122.5 286.92,1122.5"];
ScanBarcode:onScan:s -> Start [arrowhead=normal,
pos="e,255.45,1091.9 242,1002.5 242,989.16 262.73,993.91 272,1003.5 288.22,1020.3 278.03,1033.5 272,1056 269.53,1065.2 265.33,1074.5 \
260.65,1083"];
ScanBarcode:onSerno:s -> HaveSerno [arrowhead=normal,
pos="e,202,965.28 202,1002.5 202,993.72 202,984.25 202,975.37"];
ScanBarcode:_:e -> ShowBarcodeScanner:_:w [arrowhead=onormal,
minlen=2,
pos="e,309,1031.5 270,1031.5 283.41,1031.5 289.04,1031.5 298.92,1031.5"];
HaveSerno:onSearch:s -> SearchingIssue [arrowhead=normal,
pos="e,217,874.28 217,911.5 217,902.72 217,893.25 217,884.37"];
HaveSerno:_:e -> ShowSerno:_:w [arrowhead=onormal,
minlen=2,
pos="e,281,940.5 242,940.5 255.41,940.5 261.04,940.5 270.92,940.5"];
SearchingIssue:onSuccess:s -> HaveIssue [arrowhead=normal,
pos="e,149.56,770.09 193,820.5 193,799.86 176.7,784.94 158.55,774.73"];
SearchingIssue:onError:s -> IssueError [arrowhead=normal,
pos="e,281.44,778.55 238,820.5 238,810.09 254.59,796.19 272.94,784.01"];
SearchingIssue:_:e -> SearchIssue:_:w [arrowhead=onormal,
minlen=2,
pos="e,306,849.5 267,849.5 280.41,849.5 286.04,849.5 295.92,849.5"];
HaveIssue:_:s -> SearchingRevocation [arrowhead=normal,
pos="e,111,692.19 111,744.5 111,730.76 111,715.67 111,702.39"];
HaveIssue:_:e -> ShowIssue:_:w [arrowhead=onormal,
minlen=2,
pos="e,186,758.5 148,758.5 160.93,758.5 166.44,758.5 175.89,758.5"];
IssueError:_:e -> ShowIssueError:_:w [arrowhead=onormal,
minlen=2,
pos="e,397,758.5 359,758.5 371.93,758.5 377.44,758.5 386.89,758.5"];
NeedRevocation [color="#cc0000",
height=0.76389,
label=<
<table border='1' bgcolor="#ffeeee" cellborder='1'>
<tr><td colspan='4' border='0' align='right' cellpadding='0' cellspacing='10'><font point-size='6'>state</font></td></tr>
<tr><td colspan='4' border='1' color="#ffeeee" bgcolor="#ffeeee" port='_' cellpadding='4'>NeedRevocation</td></tr>
<tr>
<td port='onRevoke' color="#00aa00" bgcolor="#ffffff" cellpadding='1' cellspacing='3'><font point-size='8'>onRevoke</font></td>
<td port='onScan' color="#00aa00" bgcolor="#ffffff" cellpadding='1' cellspacing='3'><font point-size='8'>onScan</font></td>
<td port='onSearch' color="#00aa00" bgcolor="#ffffff" cellpadding='1' cellspacing='3'><font point-size='8'>onSearch</font></td>
</tr>
</table>>,
margin=0,
pos="156,573.5",
shape=plain,
width=1.5694];
SearchingRevocation:onError:s -> NeedRevocation [arrowhead=normal,
pos="e,143.79,601.02 136,638.5 136,629.28 137.91,619.64 140.56,610.72"];
SearchingRevocation:onSuccess:s -> HaveRevocation [arrowhead=normal,
pos="e,81.824,419.19 78,638.5 78,556.94 72.812,536.39 78,455 78.534,446.62 79.468,437.64 80.513,429.18"];
SearchingRevocation:_:e -> SearchRevocation:_:w [arrowhead=onormal,
minlen=2,
pos="e,217,667.5 178,667.5 191.41,667.5 197.04,667.5 206.92,667.5"];
NeedRevocation:onRevoke:s -> RevokingCert [arrowhead=normal,
pos="e,126.84,510.27 121,547.5 121,538.46 122.44,528.89 124.42,519.98"];
RevokingCert:onError:s -> NeedRevocation [arrowhead=normal,
pos="e,171.54,545.72 156,456.5 156,443.6 176.04,448.22 185,457.5 201.21,474.28 190.03,487.21 185,510 183.03,518.91 179.66,528.06 175.9,\
536.52"];
RevokingCert:onSuccess:s -> HaveRevocation [arrowhead=normal,
pos="e,102.79,419.19 113,456.5 113,447.02 110.46,437.34 106.93,428.46"];
RevokingCert:_:e -> RevokeCert:_:w [arrowhead=onormal,
minlen=2,
pos="e,222,485.5 183,485.5 196.41,485.5 202.04,485.5 211.92,485.5"];
HaveRevocation:_:s -> SearchingAffirmation [arrowhead=normal,
pos="e,87,328.19 87,380.5 87,366.76 87,351.67 87,338.39"];
HaveRevocation:_:e -> ShowRevocation:_:w [arrowhead=onormal,
minlen=2,
pos="e,180,394.5 141,394.5 154.41,394.5 160.04,394.5 169.92,394.5"];
NeedAffirmation [color="#cc0000",
height=0.76389,
label=<
<table border='1' bgcolor="#ffeeee" cellborder='1'>
<tr><td colspan='4' border='0' align='right' cellpadding='0' cellspacing='10'><font point-size='6'>state</font></td></tr>
<tr><td colspan='4' border='1' color="#ffeeee" bgcolor="#ffeeee" port='_' cellpadding='4'>NeedAffirmation</td></tr>
<tr>
<td port='onAffirm' color="#00aa00" bgcolor="#ffffff" cellpadding='1' cellspacing='3'><font point-size='8'>onAffirm</font></td>
<td port='onScan' color="#00aa00" bgcolor="#ffffff" cellpadding='1' cellspacing='3'><font point-size='8'>onScan</font></td>
<td port='onSearch' color="#00aa00" bgcolor="#ffffff" cellpadding='1' cellspacing='3'><font point-size='8'>onSearch</font></td>
</tr>
</table>>,
margin=0,
pos="138,209.5",
shape=plain,
width=1.6111];
SearchingAffirmation:onError:s -> NeedAffirmation [arrowhead=normal,
pos="e,122.59,237.02 113,274.5 113,265.04 115.4,255.3 118.71,246.36"];
SearchingAffirmation:onSuccess:s -> HaveAffirmation [arrowhead=normal,
pos="e,53.302,55.174 53,274.5 53,192.93 43.172,172.37 49,91 49.601,82.604 50.652,73.623 51.827,65.161"];
SearchingAffirmation:_:e -> SearchAffirmation:_:w [arrowhead=onormal,
minlen=2,
pos="e,195,303.5 156,303.5 169.41,303.5 175.04,303.5 184.92,303.5"];
NeedAffirmation:onAffirm:s -> AffirmingReturn [arrowhead=normal,
pos="e,107.14,146.04 102,183.5 102,174.44 103.27,164.8 105.01,155.82"];
AffirmingReturn:onError:s -> NeedAffirmation [arrowhead=normal,
pos="e,156.64,181.77 138,92.5 138,77.16 161.81,82.497 172.5,93.5 188.76,110.24 178.32,123.4 172.5,146 170.14,155.17 166.11,164.43 161.63,\
172.91"];
AffirmingReturn:onSuccess:s -> HaveAffirmation [arrowhead=normal,
pos="e,76.829,55.271 88,92.5 88,82.948 85.226,73.287 81.365,64.467"];
AffirmingReturn:_:e -> AffirmReturn:_:w [arrowhead=onormal,
minlen=2,
pos="e,209,121.5 171,121.5 183.93,121.5 189.44,121.5 198.89,121.5"];
HaveAffirmation:_:e -> ShowAffirmation:_:w [arrowhead=onormal,
minlen=2,
pos="e,153,30.5 114,30.5 127.41,30.5 133.04,30.5 142.92,30.5"];
ShowBarcodeScanner:_:e -> BarcodeAnalyzer:_:w [arrowhead=odiamond,
minlen=2,
pos="e,485,1031.5 447,1031.5 459.01,1031.5 464.61,1031.5 472.92,1031.5"];
SearchIssue:_:e -> JiraSearchIssue:_:w [arrowhead=odiamond,
minlen=2,
pos="e,427,849.5 389,849.5 401.01,849.5 406.61,849.5 414.92,849.5"];
SearchRevocation:_:e -> JiraSearchRevocation:_:w [arrowhead=odiamond,
minlen=2,
pos="e,371,667.5 334,667.5 345.56,667.5 351.03,667.5 358.97,667.5"];
RevokeCert:_:e -> JiraRevokeCert:_:w [arrowhead=odiamond,
minlen=2,
pos="e,343,485.5 305,485.5 317.01,485.5 322.61,485.5 330.92,485.5"];
SearchAffirmation:_:e -> JiraSearchAffirmation:_:w [arrowhead=odiamond,
minlen=2,
pos="e,353,303.5 316,303.5 327.56,303.5 333.03,303.5 340.97,303.5"];
AffirmReturn:_:e -> JiraAffirmReturn:_:w [arrowhead=odiamond,
minlen=2,
pos="e,341,121.5 303,121.5 315.01,121.5 320.61,121.5 328.92,121.5"];
// added by hand
HaveSerno -> IssueError [constraint=false color="#aaaaaa" dir=back arrowtail=onormal style=dashed];
}
And the result:

Related

Validate excel sheet lines against application lines using loop with Ruby

Friends, I'll try to be as detailed as possible. Thomas Walpole It helped me to validate if the information of each row of the worksheet corresponds to each row of the grid of my application. However I would like to use the for to validate this to make it more beautiful. How would I change the solution below?
As I don't know how to use the loop under these conditions, I'll have to do it by hand item by item in my worksheet and validate one by one with the items on the front
My spreadsheet is configured like this:
| Element | Status |
| Nº Hidrômetro |Invisível |
| Leitura |Invisível |
| Diâmetro do HD |Invisível |
| Filtro |Invisível |
| Padrão de instalação do HD |Invisível |
| Equipamento de telemetria acoplado |Invisível |
Spreadsheet.client_encoding = 'UTF-8'
book = Spreadsheet.open('c:/temp/gab.xls', "r")
sheet = book.worksheet 0
#get the first row referring to the second column
take_hidrometro_planilha = sheet.rows[1][1]
pp "O item da planilha N. hidrometro esta configurado para #{take_hidrometro_planilha}"
expect(page).to have_css("tr.tvRow:nth-child(2) .tvCell:nth-child(6) img[tooltip='#{take_hidrometro_planilha}']")
#takes the tooltip on the front according to the desired line and saves it in a variable
take_hidrometro_front = find("tr.tvRow:nth-child(2) .tvCell:nth-child(6) img[tooltip]")[:tooltip]
pp "O item do Front N. hidrometro esta configurado para #{take_hidrometro_front}"
#validates the worksheet variable with the variable captured on the front
pp expect(take_hidrometro_front).to eql(take_hidrometro_planilha)
#################### HTML CODE ###################################
<div style="" class="tvContent">
<div style="display:table;width:100%; background:inherit;">
<div style="display:table-cell;">
<table width="100%" class="tvGrid">
<tbody>
<tr>
<th colspan="1" class="tvHeader">Nome</th>
<th colspan="1" class="tvHeader">Etiqueta</th>
<th colspan="1" class="tvHeader">Tipo Dado</th>
<th colspan="1" class="tvHeader">Valores </th>
<th colspan="1" width="1" class="tvHeader">Preenchimento automático</th>
<th colspan="1" class="tvHeader">Status </th>
<th colspan="1"></th>
</tr>
<tr oncontextmenu="if(!this.cancelEvent) {sendEvent(0,event,this,true,0,'TVXWFMTGINSTATOCE','1d13','BtnDropDownRow#',0,'','','');return false;} delete this.cancelEvent;" onclick="if(notSelecting()) sendEvent(0,event,this,true,0,'TVXWFMTGINSTATOCE','1d13','Select#',0,'','','');" onmousedown="if(event.ctrlKey) this.cancelEvent=true;" class="tvRow tvRowOdd tvRoll" style="cursor:pointer;">
<td valign="center" align="left" class="tvCell">FLAG_INSERIMENTO_LETTURA_E</td>
<td valign="center" align="left" class="tvCell"> Leitura Existente</td>
<td align="left" class="tvCell" valign="center" nowrap=""></td>
<td valign="center" align="left" class="tvCell"></td>
<td align="left" width="1" class="tvCell" valign="center" tooltip=""></td>
<td valign="center" align="center" class="tvCell"><img tooltip="Invisível" src="r/std/static/minus16.gif"></td>
<td align="center" width="30" style="line-height:1px;padding:0px;" class="tvCell" valign="center">
<div onclick="event.cancelBubble=true;sendEvent(0,event,this,searchImage(this),0,'','1d13','BtnDropDownRow#',0,'','','','');" class="but">
<div><img src="r/std/icons/menu64.png" class="icon" draggable="false" align="absmiddle"></div>
</div>
</td>
</tr>
<tr oncontextmenu="if(!this.cancelEvent) {sendEvent(0,event,this,true,0,'TVXWFMTGINSTATOCE','1d13','BtnDropDownRow#',1,'','','');return false;} delete this.cancelEvent;" onclick="if(notSelecting()) sendEvent(0,event,this,true,0,'TVXWFMTGINSTATOCE','1d13','Select#',1,'','','');" onmousedown="if(event.ctrlKey) this.cancelEvent=true;" class="tvRow tvRowEven tvRoll" style="cursor:pointer;">
<td valign="center" align="left" class="tvCell">XWFMSLETMATRICOLA_E</td>
<td valign="center" align="left" class="tvCell"> Nº Hidrômetro</td>
<td align="left" class="tvCell" valign="center" nowrap=""></td>
<td valign="center" align="left" class="tvCell"></td>
<td align="left" width="1" class="tvCell" valign="center" tooltip="[AIMPMATRICOLA]">
<button onclick="event.cancelBubble=true;sendEvent(0,event,this,searchImage(this),0,'','1d13','AUTOFILLBTN#',1,'','','','');" class="but butAct" tabindex="0" tooltip="Preenchimento automático ativado" type="BUTTON">
<div><img src="r/std/icons/checkboxselected64.png" class="icon" draggable="false" align="absmiddle"></div>
</button>
</td>
<td valign="center" align="center" class="tvCell"><img tooltip="Invisível" src="r/std/static/minus16.gif"></td>
<td align="center" width="30" style="line-height:1px;padding:0px;" class="tvCell" valign="center">
<div onclick="event.cancelBubble=true;sendEvent(0,event,this,searchImage(this),0,'','1d13','BtnDropDownRow#',1,'','','','');" class="but">
<div><img src="r/std/icons/menu64.png" class="icon" draggable="false" align="absmiddle"></div>
</div>
</td>
</tr>
<tr oncontextmenu="if(!this.cancelEvent) {sendEvent(0,event,this,true,0,'TVXWFMTGINSTATOCE','1d13','BtnDropDownRow#',2,'','','');return false;} delete this.cancelEvent;" onclick="if(notSelecting()) sendEvent(0,event,this,true,0,'TVXWFMTGINSTATOCE','1d13','Select#',2,'','','');" onmousedown="if(event.ctrlKey) this.cancelEvent=true;" class="tvRow tvRowOdd tvRoll" style="cursor:pointer;">
<td valign="center" align="left" class="tvCell">XWFMSLETLETTURA_E</td>
<td valign="center" align="left" class="tvCell"> Leitura</td>
<td align="left" class="tvCell" valign="center" nowrap=""></td>
<td valign="center" align="left" class="tvCell"></td>
<td align="left" width="1" class="tvCell" valign="center" tooltip=""></td>
<td valign="center" align="center" class="tvCell"><img tooltip="Invisível" src="r/std/static/minus16.gif"></td>
<td align="center" width="30" style="line-height:1px;padding:0px;" class="tvCell" valign="center">
<div onclick="event.cancelBubble=true;sendEvent(0,event,this,searchImage(this),0,'','1d13','BtnDropDownRow#',2,'','','','');" class="but">
<div><img src="r/std/icons/menu64.png" class="icon" draggable="false" align="absmiddle"></div>
</div>
</td>
</tr>
<tr oncontextmenu="if(!this.cancelEvent) {sendEvent(0,event,this,true,0,'TVXWFMTGINSTATOCE','1d13','BtnDropDownRow#',3,'','','');return false;} delete this.cancelEvent;" onclick="if(notSelecting()) sendEvent(0,event,this,true,0,'TVXWFMTGINSTATOCE','1d13','Select#',3,'','','');" onmousedown="if(event.ctrlKey) this.cancelEvent=true;" class="tvRow tvRowEven tvRoll" style="cursor:pointer;">
<td valign="center" align="left" class="tvCell">XWFMSLETID_XWFMTDCO_E</td>
<td valign="center" align="left" class="tvCell"> Diâmetro do HD</td>
<td align="left" class="tvCell" valign="center" nowrap=""></td>
<td valign="center" align="left" class="tvCell"></td>
<td align="left" width="1" class="tvCell" valign="center" tooltip="[XGABAIMPID_XWFMTDCO]">
<button onclick="event.cancelBubble=true;sendEvent(0,event,this,searchImage(this),0,'','1d13','AUTOFILLBTN#',3,'','','','');" class="but butAct" tabindex="0" tooltip="Preenchimento automático ativado" type="BUTTON">
<div><img src="r/std/icons/checkboxselected64.png" class="icon" draggable="false" align="absmiddle"></div>
</button>
</td>
<td valign="center" align="center" class="tvCell"><img tooltip="Invisível" src="r/std/static/minus16.gif"></td>
<td align="center" width="30" style="line-height:1px;padding:0px;" class="tvCell" valign="center">
<div onclick="event.cancelBubble=true;sendEvent(0,event,this,searchImage(this),0,'','1d13','BtnDropDownRow#',3,'','','','');" class="but">
<div><img src="r/std/icons/menu64.png" class="icon" draggable="false" align="absmiddle"></div>
</div>
</td>
</tr>
<tr oncontextmenu="if(!this.cancelEvent) {sendEvent(0,event,this,true,0,'TVXWFMTGINSTATOCE','1d13','BtnDropDownRow#',4,'','','');return false;} delete this.cancelEvent;" onclick="if(notSelecting()) sendEvent(0,event,this,true,0,'TVXWFMTGINSTATOCE','1d13','Select#',4,'','','');" onmousedown="if(event.ctrlKey) this.cancelEvent=true;" class="tvRow tvRowOdd tvRoll" style="cursor:pointer;">
<td valign="center" align="left" class="tvCell">XWFMSLETSIGILLO_E</td>
<td valign="center" align="left" class="tvCell"> Filtro</td>
<td align="left" class="tvCell" valign="center" nowrap=""></td>
<td valign="center" align="left" class="tvCell"></td>
<td align="left" width="1" class="tvCell" valign="center" tooltip="[XWFMAIMPSIGILLO]">
<button onclick="event.cancelBubble=true;sendEvent(0,event,this,searchImage(this),0,'','1d13','AUTOFILLBTN#',4,'','','','');" class="but butAct" tabindex="0" tooltip="Preenchimento automático ativado" type="BUTTON">
<div><img src="r/std/icons/checkboxselected64.png" class="icon" draggable="false" align="absmiddle"></div>
</button>
</td>
<td valign="center" align="center" class="tvCell"><img tooltip="Invisível" src="r/std/static/minus16.gif"></td>
<td align="center" width="30" style="line-height:1px;padding:0px;" class="tvCell" valign="center">
<div onclick="event.cancelBubble=true;sendEvent(0,event,this,searchImage(this),0,'','1d13','BtnDropDownRow#',4,'','','','');" class="but">
<div><img src="r/std/icons/menu64.png" class="icon" draggable="false" align="absmiddle"></div>
</div>
</td>
</tr>
<tr oncontextmenu="if(!this.cancelEvent) {sendEvent(0,event,this,true,0,'TVXWFMTGINSTATOCE','1d13','BtnDropDownRow#',5,'','','');return false;} delete this.cancelEvent;" onclick="if(notSelecting()) sendEvent(0,event,this,true,0,'TVXWFMTGINSTATOCE','1d13','Select#',5,'','','');" onmousedown="if(event.ctrlKey) this.cancelEvent=true;" class="tvRow tvRowEven tvRoll" style="cursor:pointer;">
<td valign="center" align="left" class="tvCell">XWFMSLETID_XWFMTUBI_E</td>
<td valign="center" align="left" class="tvCell"> Padrão de instalação do HD</td>
<td align="left" class="tvCell" valign="center" nowrap=""></td>
<td valign="center" align="left" class="tvCell"></td>
<td align="left" width="1" class="tvCell" valign="center" tooltip="[XWFMAIMPID_XWFMTUBI]">
<button onclick="event.cancelBubble=true;sendEvent(0,event,this,searchImage(this),0,'','1d13','AUTOFILLBTN#',5,'','','','');" class="but butAct" tabindex="0" tooltip="Preenchimento automático ativado" type="BUTTON">
<div><img src="r/std/icons/checkboxselected64.png" class="icon" draggable="false" align="absmiddle"></div>
</button>
</td>
<td valign="center" align="center" class="tvCell"><img tooltip="Invisível" src="r/std/static/minus16.gif"></td>
<td align="center" width="30" style="line-height:1px;padding:0px;" class="tvCell" valign="center">
<div onclick="event.cancelBubble=true;sendEvent(0,event,this,searchImage(this),0,'','1d13','BtnDropDownRow#',5,'','','','');" class="but">
<div><img src="r/std/icons/menu64.png" class="icon" draggable="false" align="absmiddle"></div>
</div>
</td>
</tr>
<tr oncontextmenu="if(!this.cancelEvent) {sendEvent(0,event,this,true,0,'TVXWFMTGINSTATOCE','1d13','BtnDropDownRow#',6,'','','');return false;} delete this.cancelEvent;" onclick="if(notSelecting()) sendEvent(0,event,this,true,0,'TVXWFMTGINSTATOCE','1d13','Select#',6,'','','');" onmousedown="if(event.ctrlKey) this.cancelEvent=true;" class="tvRow tvRowOdd tvRoll" style="cursor:pointer;">
<td valign="center" align="left" class="tvCell">XGABSLETTELCOUPEQUIP_E</td>
<td valign="center" align="left" class="tvCell"> Equipamento de telemetria acoplado</td>
<td align="left" class="tvCell" valign="center" nowrap=""></td>
<td valign="center" align="left" class="tvCell"></td>
<td align="left" width="1" class="tvCell" valign="center" tooltip="[XGABAIMPTELCOUPEQUIP]">
<button onclick="event.cancelBubble=true;sendEvent(0,event,this,searchImage(this),0,'','1d13','AUTOFILLBTN#',6,'','','','');" class="but butAct" tabindex="0" tooltip="Preenchimento automático ativado" type="BUTTON">
<div><img src="r/std/icons/checkboxselected64.png" class="icon" draggable="false" align="absmiddle"></div>
</button>
</td>
<td valign="center" align="center" class="tvCell"><img tooltip="Invisível" src="r/std/static/minus16.gif"></td>
<td align="center" width="30" style="line-height:1px;padding:0px;" class="tvCell" valign="center">
<div onclick="event.cancelBubble=true;sendEvent(0,event,this,searchImage(this),0,'','1d13','BtnDropDownRow#',6,'','','','');" class="but">
<div><img src="r/std/icons/menu64.png" class="icon" draggable="false" align="absmiddle"></div>
Assuming you're using the 'spreadsheet' gem - the guide provides all the info you need to see how to use a loop here - https://github.com/zdavatz/spreadsheet/blob/master/GUIDE.md
sheet.each 1 do |row|
expected_tooltip = row[1]
expect(page).to have_css("tr.tvRow:nth-child .tvCell:nth-child(6) img[tooltip='#{expected_tooltip}']")
end
That is all you need to do to verify all the tooltip texts in your spreadsheet exist on the page.
If you need to verify they are in a specific order (why?) then you'd probably need something like
xls_offset = 1
row_offset = 2
sheet.each_with_index(xls_offset) do |row, idx|
expected_tooltip = row[1]
expect(page).to have_css("tr.tvRow:nth-child(#{row_offset+idx}) .tvCell:nth-child(6) img[tooltip='#{expected_tooltip}']")
end

Graphviz: striped horizontally?

In graphviz I can do something like
node [style=striped fillcolor="black;0.333:red;0.333:gold;0.333"]
to create vertical stripes that are next each other from left to right.
For example that would allow me to create the Belgian flag. Is there a way to stripe in the other direction, that is horizontally or stacked on top each other? So that I could create the German flag, for instance.
One way, using "html-like" node:
graph GF{
GF [shape=plaintext label=<
<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
<TR><TD FIXEDSIZE="true" HEIGHT="50" WIDTH="300" BGCOLOR="black"> </TD></TR>
<TR><TD FIXEDSIZE="true" HEIGHT="50" WIDTH="300" BGCOLOR="red"> </TD></TR>
<TR><TD FIXEDSIZE="true" HEIGHT="50" WIDTH="300" BGCOLOR="gold"> </TD></TR>
</TABLE>>]
}
Giving:

Unable to locate select the checkbox by referring to the text at the same row

Using robot framework to automate test task and I was trying to select the checkbox by referring to one of the values/texts at the same row, for example, it will select the checkbox of level 3. Tried many ways and referred to many post but still unable to make it works, wondering what mistake have I made?
Your kind guidance is very much appreciated.
Here is my xpath:
xpath=//td[contains(text(),'Level 3')]/following-sibling::td/input[#type='checkbox']
also this,
xpath=//td[contains(text(),'Level 3')]/td/input[#type='checkbox']
Here is my HTML
<table class="GridView" id="pag_AC_GT_MiniList_New_grd_extendLevel" style="width:100%;" cellspacing="1" cellpadding="1" border="0">
<tbody><tr class="GridView_HeaderStyle">
<th scope="col" style="width:20%;" align="left"><table style="border-collapse:collapse;" cellspacing="0" cellpadding="0" border="0">
<tbody><tr>
<td><a id="pag_AC_GT_MiniList_New_grd_extendLevel_ctl01_pag_AC_GT_MiniList_New_grd_extendLevel_1_Column" class="GridView_HeaderStyle">Level</a></td>
</tr>
</tbody></table></th><th scope="col" style="width:60%;" align="left"><table style="border-collapse:collapse;" cellspacing="0" cellpadding="0" border="0">
<tbody><tr>
<td><a id="pag_AC_GT_MiniList_New_grd_extendLevel_ctl01_pag_AC_GT_MiniList_New_grd_extendLevel_2_Column" class="GridView_HeaderStyle">Description</a></td>
</tr>
</tbody></table></th><th scope="col" style="width:20%;" align="left"><table style="border-collapse:collapse;" cellspacing="0" cellpadding="0" border="0">
<tbody><tr>
<td><a id="pag_AC_GT_MiniList_New_grd_extendLevel_ctl01_pag_AC_GT_MiniList_New_grd_extendLevel_3_Column" class="GridView_HeaderStyle">Is Sales Office</a></td>
</tr>
</tbody></table></th><th scope="col" style="width:10%;" align="left"><table style="border-collapse:collapse;" cellspacing="0" cellpadding="0" border="0">
<tbody><tr>
<td><a id="pag_AC_GT_MiniList_New_grd_extendLevel_ctl01_pag_AC_GT_MiniList_New_grd_extendLevel_4_Column" class="GridView_HeaderStyle">meboard</a></td>
</tr>
</tbody></table></th>
</tr><tr class="GridView_SelectedRowStyle">
<td style="width:20%;" valign="top" align="left"><a id="pag_AC_GT_MiniList_New_grd_extendLevel_ctl02_LEVEL_NO_Value" __nino.tr.pagename="pag_AC_GT_MiniList_New" __nino.tr.grid.rowindex="0" __nino.tr.gridname="grd_extendLevel" __nino.tr.ctrlname="LEVEL_NO" __nino.tr.formname="-" __nino.tr.ctrltype="GRIDROWSELECTOR" __nino.tr.tabname="-" onfocus="javascript:$get('SYS_activeElementId').value = 'pag_AC_GT_MiniList_New.grd_extendLevel.LEVEL_NO.0'" __nino.tr.sourcepagename="-" __nino.tr.grid.pageindex="0" __nino.tr.isaliaspage="False" jsid="pag_AC_GT_MiniList_New.grd_extendLevel.ITEM.LEVEL_NO" __nino.builder.ctrlname="pag_AC_GT_MiniList_New.grd_extendLevel.Level.ITEMTEMPLATE.LEVEL_NO" href="javascript:__doPostBack('pag_AC_GT_MiniList_New_grd_extendLevel$ctl02$LEVEL_NO_Value','')" tabindex="1">1</a></td><td class="Label" style="width:60%;" valign="top" align="left"><span id="pag_AC_GT_MiniList_New_grd_extendLevel_ctl02_LEVEL_DESC_Value" class="Label_Value" __nino.tr.pagename="pag_AC_GT_MiniList_New" __nino.tr.grid.rowindex="0" __nino.tr.gridname="grd_extendLevel" __nino.tr.ctrlname="LEVEL_DESC" __nino.tr.formname="-" __nino.tr.ctrltype="LABEL" __nino.tr.tabname="-" __nino.tr.sourcepagename="-" __nino.tr.grid.pageindex="0" __nino.tr.isaliaspage="False" jsid="pag_AC_GT_MiniList_New.grd_extendLevel.ITEM.LEVEL_DESC" __nino.builder.ctrlname="pag_AC_GT_MiniList_New.grd_extendLevel.Description.ITEMTEMPLATE.LEVEL_DESC">Level 1</span></td><td class="Label" style="width:20%;" valign="top" align="left"><span id="pag_AC_GT_MiniList_New_grd_extendLevel_ctl02_SLSOFF_IND_Value" class="Label_Value" __nino.tr.pagename="pag_AC_GT_MiniList_New" __nino.tr.grid.rowindex="0" __nino.tr.gridname="grd_extendLevel" __nino.tr.ctrlname="SLSOFF_IND" __nino.tr.formname="-" __nino.tr.ctrltype="LABEL" __nino.tr.tabname="-" __nino.tr.sourcepagename="-" __nino.tr.grid.pageindex="0" __nino.tr.isaliaspage="False" jsid="pag_AC_GT_MiniList_New.grd_extendLevel.ITEM.SLSOFF_IND" __nino.builder.ctrlname="pag_AC_GT_MiniList_New.grd_extendLevel.Is Sales Office.ITEMTEMPLATE.SLSOFF_IND">N</span></td><td class="CheckBox" style="width:10%;" valign="top" align="left"><span class="CheckBox_Value" __nino.tr.pagename="pag_AC_GT_MiniList_New" __nino.tr.grid.rowindex="0" __nino.tr.gridname="grd_extendLevel" __nino.tr.ctrlname="meboard_IND" __nino.tr.formname="-" __nino.tr.ctrltype="CHECKBOX" __nino.tr.tabname="-" __nino.tr.sourcepagename="-" __nino.tr.grid.pageindex="0" __nino.tr.isaliaspage="False" jsid="pag_AC_GT_MiniList_New.grd_extendLevel.ITEM.meboard_IND" __nino.builder.ctrlname="pag_AC_GT_MiniList_New.grd_extendLevel.meboard.ITEMTEMPLATE.meboard_IND"><input id="pag_AC_GT_MiniList_New_grd_extendLevel_ctl02_meboard_IND_Value" name="pag_AC_GT_MiniList_New_grd_extendLevel$ctl02$meboard_IND_Value" onclick="javascript:setTimeout('__doPostBack(\'pag_AC_GT_MiniList_New_grd_extendLevel$ctl02$meboard_IND_Value\',\'\')', 0)" tabindex="1" onfocus="javascript:$get('SYS_activeElementId').value = 'pag_AC_GT_MiniList_New.grd_extendLevel.meboard_IND.0'" type="checkbox"></span></td>
</tr><tr class="GridView_AlternatingRowStyle">
<td style="width:20%;" valign="top" align="left"><a id="pag_AC_GT_MiniList_New_grd_extendLevel_ctl03_LEVEL_NO_Value" __nino.tr.pagename="pag_AC_GT_MiniList_New" __nino.tr.grid.rowindex="1" __nino.tr.gridname="grd_extendLevel" __nino.tr.ctrlname="LEVEL_NO" __nino.tr.formname="-" __nino.tr.ctrltype="GRIDROWSELECTOR" __nino.tr.tabname="-" onfocus="javascript:$get('SYS_activeElementId').value = 'pag_AC_GT_MiniList_New.grd_extendLevel.LEVEL_NO.1'" __nino.tr.sourcepagename="-" __nino.tr.grid.pageindex="0" __nino.tr.isaliaspage="False" jsid="pag_AC_GT_MiniList_New.grd_extendLevel.ITEM.LEVEL_NO" __nino.builder.ctrlname="pag_AC_GT_MiniList_New.grd_extendLevel.Level.ITEMTEMPLATE.LEVEL_NO" href="javascript:__doPostBack('pag_AC_GT_MiniList_New_grd_extendLevel$ctl03$LEVEL_NO_Value','')" tabindex="1">2</a></td><td class="Label" style="width:60%;" valign="top" align="left"><span id="pag_AC_GT_MiniList_New_grd_extendLevel_ctl03_LEVEL_DESC_Value" class="Label_Value" __nino.tr.pagename="pag_AC_GT_MiniList_New" __nino.tr.grid.rowindex="1" __nino.tr.gridname="grd_extendLevel" __nino.tr.ctrlname="LEVEL_DESC" __nino.tr.formname="-" __nino.tr.ctrltype="LABEL" __nino.tr.tabname="-" __nino.tr.sourcepagename="-" __nino.tr.grid.pageindex="0" __nino.tr.isaliaspage="False" jsid="pag_AC_GT_MiniList_New.grd_extendLevel.ITEM.LEVEL_DESC" __nino.builder.ctrlname="pag_AC_GT_MiniList_New.grd_extendLevel.Description.ITEMTEMPLATE.LEVEL_DESC">Level 2</span></td><td class="Label" style="width:20%;" valign="top" align="left"><span id="pag_AC_GT_MiniList_New_grd_extendLevel_ctl03_SLSOFF_IND_Value" class="Label_Value" __nino.tr.pagename="pag_AC_GT_MiniList_New" __nino.tr.grid.rowindex="1" __nino.tr.gridname="grd_extendLevel" __nino.tr.ctrlname="SLSOFF_IND" __nino.tr.formname="-" __nino.tr.ctrltype="LABEL" __nino.tr.tabname="-" __nino.tr.sourcepagename="-" __nino.tr.grid.pageindex="0" __nino.tr.isaliaspage="False" jsid="pag_AC_GT_MiniList_New.grd_extendLevel.ITEM.SLSOFF_IND" __nino.builder.ctrlname="pag_AC_GT_MiniList_New.grd_extendLevel.Is Sales Office.ITEMTEMPLATE.SLSOFF_IND">N</span></td><td class="CheckBox" style="width:10%;" valign="top" align="left"><span class="CheckBox_Value" __nino.tr.pagename="pag_AC_GT_MiniList_New" __nino.tr.grid.rowindex="1" __nino.tr.gridname="grd_extendLevel" __nino.tr.ctrlname="meboard_IND" __nino.tr.formname="-" __nino.tr.ctrltype="CHECKBOX" __nino.tr.tabname="-" __nino.tr.sourcepagename="-" __nino.tr.grid.pageindex="0" __nino.tr.isaliaspage="False" jsid="pag_AC_GT_MiniList_New.grd_extendLevel.ITEM.meboard_IND" __nino.builder.ctrlname="pag_AC_GT_MiniList_New.grd_extendLevel.meboard.ITEMTEMPLATE.meboard_IND"><input id="pag_AC_GT_MiniList_New_grd_extendLevel_ctl03_meboard_IND_Value" name="pag_AC_GT_MiniList_New_grd_extendLevel$ctl03$meboard_IND_Value" onclick="javascript:setTimeout('__doPostBack(\'pag_AC_GT_MiniList_New_grd_extendLevel$ctl03$meboard_IND_Value\',\'\')', 0)" tabindex="1" onfocus="javascript:$get('SYS_activeElementId').value = 'pag_AC_GT_MiniList_New.grd_extendLevel.meboard_IND.1'" type="checkbox"></span></td>
</tr><tr class="GridView_RowStyle">
<td style="width:20%;" valign="top" align="left"><a id="pag_AC_GT_MiniList_New_grd_extendLevel_ctl04_LEVEL_NO_Value" __nino.tr.pagename="pag_AC_GT_MiniList_New" __nino.tr.grid.rowindex="2" __nino.tr.gridname="grd_extendLevel" __nino.tr.ctrlname="LEVEL_NO" __nino.tr.formname="-" __nino.tr.ctrltype="GRIDROWSELECTOR" __nino.tr.tabname="-" onfocus="javascript:$get('SYS_activeElementId').value = 'pag_AC_GT_MiniList_New.grd_extendLevel.LEVEL_NO.2'" __nino.tr.sourcepagename="-" __nino.tr.grid.pageindex="0" __nino.tr.isaliaspage="False" jsid="pag_AC_GT_MiniList_New.grd_extendLevel.ITEM.LEVEL_NO" __nino.builder.ctrlname="pag_AC_GT_MiniList_New.grd_extendLevel.Level.ITEMTEMPLATE.LEVEL_NO" href="javascript:__doPostBack('pag_AC_GT_MiniList_New_grd_extendLevel$ctl04$LEVEL_NO_Value','')" tabindex="1">3</a></td><td class="Label" style="width:60%;" valign="top" align="left"><span id="pag_AC_GT_MiniList_New_grd_extendLevel_ctl04_LEVEL_DESC_Value" class="Label_Value" __nino.tr.pagename="pag_AC_GT_MiniList_New" __nino.tr.grid.rowindex="2" __nino.tr.gridname="grd_extendLevel" __nino.tr.ctrlname="LEVEL_DESC" __nino.tr.formname="-" __nino.tr.ctrltype="LABEL" __nino.tr.tabname="-" __nino.tr.sourcepagename="-" __nino.tr.grid.pageindex="0" __nino.tr.isaliaspage="False" jsid="pag_AC_GT_MiniList_New.grd_extendLevel.ITEM.LEVEL_DESC" __nino.builder.ctrlname="pag_AC_GT_MiniList_New.grd_extendLevel.Description.ITEMTEMPLATE.LEVEL_DESC">Level 3</span></td><td class="Label" style="width:20%;" valign="top" align="left"><span id="pag_AC_GT_MiniList_New_grd_extendLevel_ctl04_SLSOFF_IND_Value" class="Label_Value" __nino.tr.pagename="pag_AC_GT_MiniList_New" __nino.tr.grid.rowindex="2" __nino.tr.gridname="grd_extendLevel" __nino.tr.ctrlname="SLSOFF_IND" __nino.tr.formname="-" __nino.tr.ctrltype="LABEL" __nino.tr.tabname="-" __nino.tr.sourcepagename="-" __nino.tr.grid.pageindex="0" __nino.tr.isaliaspage="False" jsid="pag_AC_GT_MiniList_New.grd_extendLevel.ITEM.SLSOFF_IND" __nino.builder.ctrlname="pag_AC_GT_MiniList_New.grd_extendLevel.Is Sales Office.ITEMTEMPLATE.SLSOFF_IND">N</span></td><td class="CheckBox" style="width:10%;" valign="top" align="left"><span class="CheckBox_Value" __nino.tr.pagename="pag_AC_GT_MiniList_New" __nino.tr.grid.rowindex="2" __nino.tr.gridname="grd_extendLevel" __nino.tr.ctrlname="meboard_IND" __nino.tr.formname="-" __nino.tr.ctrltype="CHECKBOX" __nino.tr.tabname="-" __nino.tr.sourcepagename="-" __nino.tr.grid.pageindex="0" __nino.tr.isaliaspage="False" jsid="pag_AC_GT_MiniList_New.grd_extendLevel.ITEM.meboard_IND" __nino.builder.ctrlname="pag_AC_GT_MiniList_New.grd_extendLevel.meboard.ITEMTEMPLATE.meboard_IND"><input id="pag_AC_GT_MiniList_New_grd_extendLevel_ctl04_meboard_IND_Value" name="pag_AC_GT_MiniList_New_grd_extendLevel$ctl04$meboard_IND_Value" onclick="javascript:setTimeout('__doPostBack(\'pag_AC_GT_MiniList_New_grd_extendLevel$ctl04$meboard_IND_Value\',\'\')', 0)" tabindex="1" onfocus="javascript:$get('SYS_activeElementId').value = 'pag_AC_GT_MiniList_New.grd_extendLevel.meboard_IND.2'" type="checkbox"></span></td>
</tr><tr class="GridView_AlternatingRowStyle">
<td style="width:20%;" valign="top" align="left"><a id="pag_AC_GT_MiniList_New_grd_extendLevel_ctl05_LEVEL_NO_Value" __nino.tr.pagename="pag_AC_GT_MiniList_New" __nino.tr.grid.rowindex="3" __nino.tr.gridname="grd_extendLevel" __nino.tr.ctrlname="LEVEL_NO" __nino.tr.formname="-" __nino.tr.ctrltype="GRIDROWSELECTOR" __nino.tr.tabname="-" onfocus="javascript:$get('SYS_activeElementId').value = 'pag_AC_GT_MiniList_New.grd_extendLevel.LEVEL_NO.3'" __nino.tr.sourcepagename="-" __nino.tr.grid.pageindex="0" __nino.tr.isaliaspage="False" jsid="pag_AC_GT_MiniList_New.grd_extendLevel.ITEM.LEVEL_NO" __nino.builder.ctrlname="pag_AC_GT_MiniList_New.grd_extendLevel.Level.ITEMTEMPLATE.LEVEL_NO" href="javascript:__doPostBack('pag_AC_GT_MiniList_New_grd_extendLevel$ctl05$LEVEL_NO_Value','')" tabindex="1">4</a></td><td class="Label" style="width:60%;" valign="top" align="left"><span id="pag_AC_GT_MiniList_New_grd_extendLevel_ctl05_LEVEL_DESC_Value" class="Label_Value" __nino.tr.pagename="pag_AC_GT_MiniList_New" __nino.tr.grid.rowindex="3" __nino.tr.gridname="grd_extendLevel" __nino.tr.ctrlname="LEVEL_DESC" __nino.tr.formname="-" __nino.tr.ctrltype="LABEL" __nino.tr.tabname="-" __nino.tr.sourcepagename="-" __nino.tr.grid.pageindex="0" __nino.tr.isaliaspage="False" jsid="pag_AC_GT_MiniList_New.grd_extendLevel.ITEM.LEVEL_DESC" __nino.builder.ctrlname="pag_AC_GT_MiniList_New.grd_extendLevel.Description.ITEMTEMPLATE.LEVEL_DESC">Level 4</span></td><td class="Label" style="width:20%;" valign="top" align="left"><span id="pag_AC_GT_MiniList_New_grd_extendLevel_ctl05_SLSOFF_IND_Value" class="Label_Value" __nino.tr.pagename="pag_AC_GT_MiniList_New" __nino.tr.grid.rowindex="3" __nino.tr.gridname="grd_extendLevel" __nino.tr.ctrlname="SLSOFF_IND" __nino.tr.formname="-" __nino.tr.ctrltype="LABEL" __nino.tr.tabname="-" __nino.tr.sourcepagename="-" __nino.tr.grid.pageindex="0" __nino.tr.isaliaspage="False" jsid="pag_AC_GT_MiniList_New.grd_extendLevel.ITEM.SLSOFF_IND" __nino.builder.ctrlname="pag_AC_GT_MiniList_New.grd_extendLevel.Is Sales Office.ITEMTEMPLATE.SLSOFF_IND">N</span></td><td class="CheckBox" style="width:10%;" valign="top" align="left"><span class="CheckBox_Value" __nino.tr.pagename="pag_AC_GT_MiniList_New" __nino.tr.grid.rowindex="3" __nino.tr.gridname="grd_extendLevel" __nino.tr.ctrlname="meboard_IND" __nino.tr.formname="-" __nino.tr.ctrltype="CHECKBOX" __nino.tr.tabname="-" __nino.tr.sourcepagename="-" __nino.tr.grid.pageindex="0" __nino.tr.isaliaspage="False" jsid="pag_AC_GT_MiniList_New.grd_extendLevel.ITEM.meboard_IND" __nino.builder.ctrlname="pag_AC_GT_MiniList_New.grd_extendLevel.meboard.ITEMTEMPLATE.meboard_IND"><input id="pag_AC_GT_MiniList_New_grd_extendLevel_ctl05_meboard_IND_Value" name="pag_AC_GT_MiniList_New_grd_extendLevel$ctl05$meboard_IND_Value" onclick="javascript:setTimeout('__doPostBack(\'pag_AC_GT_MiniList_New_grd_extendLevel$ctl05$meboard_IND_Value\',\'\')', 0)" tabindex="1" onfocus="javascript:$get('SYS_activeElementId').value = 'pag_AC_GT_MiniList_New.grd_extendLevel.meboard_IND.3'" type="checkbox"></span></td>
</tr><tr class="GridView_RowStyle">
<td style="width:20%;" valign="top" align="left"><a id="pag_AC_GT_MiniList_New_grd_extendLevel_ctl06_LEVEL_NO_Value" __nino.tr.pagename="pag_AC_GT_MiniList_New" __nino.tr.grid.rowindex="4" __nino.tr.gridname="grd_extendLevel" __nino.tr.ctrlname="LEVEL_NO" __nino.tr.formname="-" __nino.tr.ctrltype="GRIDROWSELECTOR" __nino.tr.tabname="-" onfocus="javascript:$get('SYS_activeElementId').value = 'pag_AC_GT_MiniList_New.grd_extendLevel.LEVEL_NO.4'" __nino.tr.sourcepagename="-" __nino.tr.grid.pageindex="0" __nino.tr.isaliaspage="False" jsid="pag_AC_GT_MiniList_New.grd_extendLevel.ITEM.LEVEL_NO" __nino.builder.ctrlname="pag_AC_GT_MiniList_New.grd_extendLevel.Level.ITEMTEMPLATE.LEVEL_NO" href="javascript:__doPostBack('pag_AC_GT_MiniList_New_grd_extendLevel$ctl06$LEVEL_NO_Value','')" tabindex="1">5</a></td><td class="Label" style="width:60%;" valign="top" align="left"><span id="pag_AC_GT_MiniList_New_grd_extendLevel_ctl06_LEVEL_DESC_Value" class="Label_Value" __nino.tr.pagename="pag_AC_GT_MiniList_New" __nino.tr.grid.rowindex="4" __nino.tr.gridname="grd_extendLevel" __nino.tr.ctrlname="LEVEL_DESC" __nino.tr.formname="-" __nino.tr.ctrltype="LABEL" __nino.tr.tabname="-" __nino.tr.sourcepagename="-" __nino.tr.grid.pageindex="0" __nino.tr.isaliaspage="False" jsid="pag_AC_GT_MiniList_New.grd_extendLevel.ITEM.LEVEL_DESC" __nino.builder.ctrlname="pag_AC_GT_MiniList_New.grd_extendLevel.Description.ITEMTEMPLATE.LEVEL_DESC">Level 5</span></td><td class="Label" style="width:20%;" valign="top" align="left"><span id="pag_AC_GT_MiniList_New_grd_extendLevel_ctl06_SLSOFF_IND_Value" class="Label_Value" __nino.tr.pagename="pag_AC_GT_MiniList_New" __nino.tr.grid.rowindex="4" __nino.tr.gridname="grd_extendLevel" __nino.tr.ctrlname="SLSOFF_IND" __nino.tr.formname="-" __nino.tr.ctrltype="LABEL" __nino.tr.tabname="-" __nino.tr.sourcepagename="-" __nino.tr.grid.pageindex="0" __nino.tr.isaliaspage="False" jsid="pag_AC_GT_MiniList_New.grd_extendLevel.ITEM.SLSOFF_IND" __nino.builder.ctrlname="pag_AC_GT_MiniList_New.grd_extendLevel.Is Sales Office.ITEMTEMPLATE.SLSOFF_IND">N</span></td><td class="CheckBox" style="width:10%;" valign="top" align="left"><span class="CheckBox_Value" __nino.tr.pagename="pag_AC_GT_MiniList_New" __nino.tr.grid.rowindex="4" __nino.tr.gridname="grd_extendLevel" __nino.tr.ctrlname="meboard_IND" __nino.tr.formname="-" __nino.tr.ctrltype="CHECKBOX" __nino.tr.tabname="-" __nino.tr.sourcepagename="-" __nino.tr.grid.pageindex="0" __nino.tr.isaliaspage="False" jsid="pag_AC_GT_MiniList_New.grd_extendLevel.ITEM.meboard_IND" __nino.builder.ctrlname="pag_AC_GT_MiniList_New.grd_extendLevel.meboard.ITEMTEMPLATE.meboard_IND"><input id="pag_AC_GT_MiniList_New_grd_extendLevel_ctl06_meboard_IND_Value" name="pag_AC_GT_MiniList_New_grd_extendLevel$ctl06$meboard_IND_Value" onclick="javascript:setTimeout('__doPostBack(\'pag_AC_GT_MiniList_New_grd_extendLevel$ctl06$meboard_IND_Value\',\'\')', 0)" tabindex="1" onfocus="javascript:$get('SYS_activeElementId').value = 'pag_AC_GT_MiniList_New.grd_extendLevel.meboard_IND.4'" type="checkbox"></span></td>
</tr><tr class="GridView_AlternatingRowStyle">
<td style="width:20%;" valign="top" align="left"><a id="pag_AC_GT_MiniList_New_grd_extendLevel_ctl07_LEVEL_NO_Value" __nino.tr.pagename="pag_AC_GT_MiniList_New" __nino.tr.grid.rowindex="5" __nino.tr.gridname="grd_extendLevel" __nino.tr.ctrlname="LEVEL_NO" __nino.tr.formname="-" __nino.tr.ctrltype="GRIDROWSELECTOR" __nino.tr.tabname="-" onfocus="javascript:$get('SYS_activeElementId').value = 'pag_AC_GT_MiniList_New.grd_extendLevel.LEVEL_NO.5'" __nino.tr.sourcepagename="-" __nino.tr.grid.pageindex="0" __nino.tr.isaliaspage="False" jsid="pag_AC_GT_MiniList_New.grd_extendLevel.ITEM.LEVEL_NO" __nino.builder.ctrlname="pag_AC_GT_MiniList_New.grd_extendLevel.Level.ITEMTEMPLATE.LEVEL_NO" href="javascript:__doPostBack('pag_AC_GT_MiniList_New_grd_extendLevel$ctl07$LEVEL_NO_Value','')" tabindex="1">6</a></td><td class="Label" style="width:60%;" valign="top" align="left"><span id="pag_AC_GT_MiniList_New_grd_extendLevel_ctl07_LEVEL_DESC_Value" class="Label_Value" __nino.tr.pagename="pag_AC_GT_MiniList_New" __nino.tr.grid.rowindex="5" __nino.tr.gridname="grd_extendLevel" __nino.tr.ctrlname="LEVEL_DESC" __nino.tr.formname="-" __nino.tr.ctrltype="LABEL" __nino.tr.tabname="-" __nino.tr.sourcepagename="-" __nino.tr.grid.pageindex="0" __nino.tr.isaliaspage="False" jsid="pag_AC_GT_MiniList_New.grd_extendLevel.ITEM.LEVEL_DESC" __nino.builder.ctrlname="pag_AC_GT_MiniList_New.grd_extendLevel.Description.ITEMTEMPLATE.LEVEL_DESC">Level 6</span></td><td class="Label" style="width:20%;" valign="top" align="left"><span id="pag_AC_GT_MiniList_New_grd_extendLevel_ctl07_SLSOFF_IND_Value" class="Label_Value" __nino.tr.pagename="pag_AC_GT_MiniList_New" __nino.tr.grid.rowindex="5" __nino.tr.gridname="grd_extendLevel" __nino.tr.ctrlname="SLSOFF_IND" __nino.tr.formname="-" __nino.tr.ctrltype="LABEL" __nino.tr.tabname="-" __nino.tr.sourcepagename="-" __nino.tr.grid.pageindex="0" __nino.tr.isaliaspage="False" jsid="pag_AC_GT_MiniList_New.grd_extendLevel.ITEM.SLSOFF_IND" __nino.builder.ctrlname="pag_AC_GT_MiniList_New.grd_extendLevel.Is Sales Office.ITEMTEMPLATE.SLSOFF_IND">N</span></td><td class="CheckBox" style="width:10%;" valign="top" align="left"><span class="CheckBox_Value" __nino.tr.pagename="pag_AC_GT_MiniList_New" __nino.tr.grid.rowindex="5" __nino.tr.gridname="grd_extendLevel" __nino.tr.ctrlname="meboard_IND" __nino.tr.formname="-" __nino.tr.ctrltype="CHECKBOX" __nino.tr.tabname="-" __nino.tr.sourcepagename="-" __nino.tr.grid.pageindex="0" __nino.tr.isaliaspage="False" jsid="pag_AC_GT_MiniList_New.grd_extendLevel.ITEM.meboard_IND" __nino.builder.ctrlname="pag_AC_GT_MiniList_New.grd_extendLevel.meboard.ITEMTEMPLATE.meboard_IND"><input id="pag_AC_GT_MiniList_New_grd_extendLevel_ctl07_meboard_IND_Value" name="pag_AC_GT_MiniList_New_grd_extendLevel$ctl07$meboard_IND_Value" onclick="javascript:setTimeout('__doPostBack(\'pag_AC_GT_MiniList_New_grd_extendLevel$ctl07$meboard_IND_Value\',\'\')', 0)" tabindex="1" onfocus="javascript:$get('SYS_activeElementId').value = 'pag_AC_GT_MiniList_New.grd_extendLevel.meboard_IND.5'" type="checkbox"></span></td>
</tr><tr class="GridView_RowStyle">
<td style="width:20%;" valign="top" align="left"><a id="pag_AC_GT_MiniList_New_grd_extendLevel_ctl08_LEVEL_NO_Value" __nino.tr.pagename="pag_AC_GT_MiniList_New" __nino.tr.grid.rowindex="6" __nino.tr.gridname="grd_extendLevel" __nino.tr.ctrlname="LEVEL_NO" __nino.tr.formname="-" __nino.tr.ctrltype="GRIDROWSELECTOR" __nino.tr.tabname="-" onfocus="javascript:$get('SYS_activeElementId').value = 'pag_AC_GT_MiniList_New.grd_extendLevel.LEVEL_NO.6'" __nino.tr.sourcepagename="-" __nino.tr.grid.pageindex="0" __nino.tr.isaliaspage="False" jsid="pag_AC_GT_MiniList_New.grd_extendLevel.ITEM.LEVEL_NO" __nino.builder.ctrlname="pag_AC_GT_MiniList_New.grd_extendLevel.Level.ITEMTEMPLATE.LEVEL_NO" href="javascript:__doPostBack('pag_AC_GT_MiniList_New_grd_extendLevel$ctl08$LEVEL_NO_Value','')" tabindex="1">7</a></td><td class="Label" style="width:60%;" valign="top" align="left"><span id="pag_AC_GT_MiniList_New_grd_extendLevel_ctl08_LEVEL_DESC_Value" class="Label_Value" __nino.tr.pagename="pag_AC_GT_MiniList_New" __nino.tr.grid.rowindex="6" __nino.tr.gridname="grd_extendLevel" __nino.tr.ctrlname="LEVEL_DESC" __nino.tr.formname="-" __nino.tr.ctrltype="LABEL" __nino.tr.tabname="-" __nino.tr.sourcepagename="-" __nino.tr.grid.pageindex="0" __nino.tr.isaliaspage="False" jsid="pag_AC_GT_MiniList_New.grd_extendLevel.ITEM.LEVEL_DESC" __nino.builder.ctrlname="pag_AC_GT_MiniList_New.grd_extendLevel.Description.ITEMTEMPLATE.LEVEL_DESC">Level 7</span></td><td class="Label" style="width:20%;" valign="top" align="left"><span id="pag_AC_GT_MiniList_New_grd_extendLevel_ctl08_SLSOFF_IND_Value" class="Label_Value" __nino.tr.pagename="pag_AC_GT_MiniList_New" __nino.tr.grid.rowindex="6" __nino.tr.gridname="grd_extendLevel" __nino.tr.ctrlname="SLSOFF_IND" __nino.tr.formname="-" __nino.tr.ctrltype="LABEL" __nino.tr.tabname="-" __nino.tr.sourcepagename="-" __nino.tr.grid.pageindex="0" __nino.tr.isaliaspage="False" jsid="pag_AC_GT_MiniList_New.grd_extendLevel.ITEM.SLSOFF_IND" __nino.builder.ctrlname="pag_AC_GT_MiniList_New.grd_extendLevel.Is Sales Office.ITEMTEMPLATE.SLSOFF_IND">N</span></td><td class="CheckBox" style="width:10%;" valign="top" align="left"><span class="CheckBox_Value" __nino.tr.pagename="pag_AC_GT_MiniList_New" __nino.tr.grid.rowindex="6" __nino.tr.gridname="grd_extendLevel" __nino.tr.ctrlname="meboard_IND" __nino.tr.formname="-" __nino.tr.ctrltype="CHECKBOX" __nino.tr.tabname="-" __nino.tr.sourcepagename="-" __nino.tr.grid.pageindex="0" __nino.tr.isaliaspage="False" jsid="pag_AC_GT_MiniList_New.grd_extendLevel.ITEM.meboard_IND" __nino.builder.ctrlname="pag_AC_GT_MiniList_New.grd_extendLevel.meboard.ITEMTEMPLATE.meboard_IND"><input id="pag_AC_GT_MiniList_New_grd_extendLevel_ctl08_meboard_IND_Value" name="pag_AC_GT_MiniList_New_grd_extendLevel$ctl08$meboard_IND_Value" onclick="javascript:setTimeout('__doPostBack(\'pag_AC_GT_MiniList_New_grd_extendLevel$ctl08$meboard_IND_Value\',\'\')', 0)" tabindex="1" onfocus="javascript:$get('SYS_activeElementId').value = 'pag_AC_GT_MiniList_New.grd_extendLevel.meboard_IND.6'" type="checkbox"></span></td>
</tr>
</tbody></table>
You may try this,
//span[#id='pag_AC_GT_MiniList_New_grd_extendLevel_ctl04_LEVEL_DESC_Value' and contains(text(),'Level 3')]//following::input[#id='pag_AC_GT_MiniList_New_grd_extendLevel_ctl04_meboard_IND_Value']
Hope it will work.

finding an xpath with many //tr without giving the exact //tr[value]

so my issue is I am trying to verify for example "11305487/10" is displaying without giving the tr cell value in the event for some reason it happens to change at some point. I want it to skim the tr looking for the text() I provide but cant seem to get it down. any help is appreciated!
firepath gives me an xpath of
html/body/table[2]/tbody/tr/td/form/table/tbody/tr/td/table/tbody/tr[2]/td/div/table/tbody/tr[3]/td/div[1]/table/tbody/tr[4]/td[4]
the below xpath fails
"//table[contains(div[1]/tr/td[4]/text(),'11618632')]"
<div id="scrollableDocumentsTable" onscroll="onScrollHideFilters();">
<table id="documentsTable" width="960" cellspacing="1" cellpadding="0" border="0" align="center" style="table-layout: fixed;">
<tbody>
<tr bgcolor="#008677">
<tr height="19" bgcolor="#CCCCCC">
<tr height="19" bgcolor="#FFFF99">
<tr height="19" bgcolor="#CCCCCC">
<td align="center">
<td class="BlackSmall" align="left" style="padding-left: 15px; padding-right: 5px;">09/25/14</td>
<td class="BlackSmall" align="left" style="padding-left: 15px; padding-right: 5px;">10/25/14</td>
<td class="BlackSmall" align="left" style="padding-left: 15px; padding-right: 5px;">11618632</td>
<td class="BlackSmall" align="right" style="padding-left: 15px; padding-right: 5px;">71.54</td>
<input id="bp_2" type="hidden" value="N" name="bp_2"/>
<td class="BlackSmall" align="left" style="padding-left: 15px; padding-right: 5px;">Mail</td>
<td class="BlackSmall" align="right" style="padding-left: 15px; padding-right: 5px;">0.00</td>
<td class="BlackSmall" align="left" style="padding-left: 15px; padding-right: 5px;">xxxxxxxxxxx</td>
<tr height="19" bgcolor="#FFFF99">
<tr height="19" bgcolor="#CCCCCC">
<tr height="19" bgcolor="#FFFF99">
<tr height="19" bgcolor="#CCCCCC">
<tr height="19" bgcolor="#FFFF99">
<tr height="19" bgcolor="#CCCCCC">
<tr height="19" bgcolor="#FFFF99">
<tr height="19" bgcolor="#CCCCCC">
<tr height="19" bgcolor="#FFFF99">
<tr height="19" bgcolor="#CCCCCC">
<tr height="19" bgcolor="#FFFF99">
<tr height="19" bgcolor="#CCCCCC">
<tr height="19" bgcolor="#FFFF99">
<tr height="19" bgcolor="#CCCCCC">
<tr height="19" bgcolor="#FFFF99">
<tr height="19" bgcolor="#CCCCCC">
<tr height="19" bgcolor="#FFFF99">
<tr height="19" bgcolor="#CCCCCC">
<tr height="19" bgcolor="#FFFF99">
<tr height="19" bgcolor="#CCCCCC">
<tr height="19" bgcolor="#FFFF99">
<tr height="19" bgcolor="#CCCCCC">
<tr height="19" bgcolor="#FFFF99">
<tr height="19" bgcolor="#CCCCCC">
<tr height="19" bgcolor="#FFFF99">
<tr height="19" bgcolor="#CCCCCC">
<tr height="19" bgcolor="#FFFF99">
<tr height="19" bgcolor="#CCCCCC">
<tr height="19" bgcolor="#FFFF99">
<tr height="19" bgcolor="#CCCCCC">
<tr height="19" bgcolor="#FFFF99">
<tr height="19" bgcolor="#CCCCCC">
<tr height="19" bgcolor="#FFFF99">
<tr height="19" bgcolor="#CCCCCC">
<tr height="19" bgcolor="#FFFF99">
<tr height="19" bgcolor="#CCCCCC">
<tr height="19" bgcolor="#FFFF99">
<tr height="19" bgcolor="#CCCCCC">
<tr height="19" bgcolor="#FFFF99">
<tr height="19" bgcolor="#CCCCCC">
<tr height="19" bgcolor="#FFFF99">
<tr height="19" bgcolor="#CCCCCC">
<tr height="19" bgcolor="#FFFF99">
<tr height="19" bgcolor="#CCCCCC">
<tr height="19" bgcolor="#FFFF99">
<tr height="19" bgcolor="#CCCCCC">
<tr>
</tbody>
</table>
</div>
You could use // to recursively search all sub-nodes:
"//table//td[contains(text(), '11618632')]"
//table matches all table nodes in the document. //table//td matches all td nodes which are descendants of a table node.
td[contains(text(), '11618632')] will match only those td nodes whose text contains the string '11618632'.

PrimeFaces Ajax

I am trying to make login with jsf.
I want to hide login panel when user registered.
I did this with jsf ajax.
When I try to do this with primefaces. I am failed.
I triy in jsf ajax like this.
<h:form id="register">
<table style="width: 49%; margin-right: auto; margin-left: auto;">
<tr>
<td colspan="3">
All fields are required.</td>
</tr>
<tr>
<td class="style2" style="height: 51px">Username</td>
<td style="width: 17px; height: 51px;">:</td>
<td class="style3" style="height: 51px"><h:inputText
id="regusername" style="width:155px;height:24px;"
value="#{userRegister.regUser.username}">
</h:inputText></td>
</tr>
<tr>
<td class="style2" style="height: 51px">Name</td>
<td style="width: 17px; height: 51px;">:</td>
<td class="style3" style="height: 51px"><h:inputText
id="regname" style="width:155px;height:24px;"
value="#{userRegister.regUser.name}">
</h:inputText></td>
</tr>
<tr>
<td class="style2" style="height: 51px">Mail</td>
<td style="width: 17px; height: 51px;">:</td>
<td class="style3" style="height: 51px"><h:inputText
id="regmail" style="width:155px;height:24px;"
value="#{userRegister.regUser.mail}">
</h:inputText></td>
</tr>
<tr>
<td class="style2" style="height: 51px">Password</td>
<td style="width: 17px; height: 51px;">:</td>
<td class="style3" style="height: 51px">
<h:inputSecret
id="regpassword" style="width:155px;height:24px;"
value="#{userRegister.regUser.password}">
</h:inputSecret></td>
</tr>
<tr>
<td> </td>
<td> </td>
<td class="style3"><h:commandButton
style="width:76px;height:26px" value="Clear" type="reset">
</h:commandButton> <h:commandButton style="width:75px;height:26px"
value="Register" action="#{userRegister.register()}"
method="post">
<f:ajax execute="regname regusername regpassword regmail"
render="registermessage" />
</h:commandButton></td>
</tr>
<tr>
<td colspan="3"><h:outputText id="registermessage"
value="#{userRegister.message}"></h:outputText></td>
</tr>
</table>
</h:form>
</h:panelGroup>
<h:panelGroup rendered="#{userLogin.isLoggedin()== true}"
layout="block">
You are already loggedin !!
</h:panelGroup>
When ı try this in primefaces like this:
<p:panel id ="registerPanel" header="User Registration" align="center"
style="text-align:center;">
<table style="width: auto; margin: auto;">
<tr>
<td style="text-align: right;"><h:outputLabel for="regname"
value="Name Surname : * " /></td>
<td style="text-align: left"><p:inputText id="regname"
value="#{userRegister.regUser.name}" size="40" required="true"
label="Name and Surname">
<f:validateLength minimum="2" />
</p:inputText> <p:watermark for="regname" value="Name Surname" /></td>
</tr>
<tr>
<td style="text-align: right" colspan="2"><p:message
for="regname" /></td>
</tr>
<tr>
<td style="text-align: right;"><h:outputLabel
for="regusername" value="Username : * " /></td>
<td style="text-align: left"><p:inputText id="regusername"
value="#{userRegister.regUser.username}" size="40"
required="true" label="Username">
<f:validateLength minimum="3" />
</p:inputText> <p:watermark for="regusername" value="Username" /></td>
</tr>
<tr>
<td style="text-align: riht" colspan="2"><p:message
for="regusername" /></td>
</tr>
<tr>
<td style="text-align: right;"><h:outputLabel for="regmail"
value="E-Mail : * " /></td>
<td style="text-align: left"><p:inputText id="regmail"
value="#{userRegister.regUser.mail}" size="40" required="true"
label="Mail">
<f:validateLength minimum="2" />
</p:inputText> <p:watermark for="regmail" value="mail#example.com" /></td>
</tr>
<tr>
<td style="text-align: right" colspan="2"><p:message
for="regmail" /></td>
</tr>
<tr>
<td style="text-align: right;"><h:outputLabel for="paswword"
value="Password : * " /></td>
<td style="text-align: left"><p:password id="regpassword"
value="#{userRegister.regUser.password}" size="40"
required="true" label="Password">
<f:validateLength minimum="5" />
</p:password> <p:watermark for="regpassword" value="Password" /></td>
</tr>
<tr>
<td style="text-align: left" colspan="2"><p:message
for="regpassword" /></td>
</tr>
<tr>
<td style="text-align: right" colspan="2">
</td>
</tr>
<tr>
<td style="text-align: right" colspan="2">
<p:commandButton value="Clear" image="ui-icon ui-icon-arrowrefresh-1-w"
type="reset"/>
<p:commandButton value="Register" image="ui-icon ui-icon-disk"
action="#{userRegister.register()}" method="post">
<f:ajax
render="registerpaneli" />
</p:commandButton>
</td>
</tr>
</table>
-->
</h:panelGroup>
I registraion panel cant hiden.
What is the problem ?
Remove the
<p:commandButton ....>
<f:ajax render="what-ever">
</p:commandButton>
By
<p:commandButton update="what-ever" ../>
Furthermore, you can read Primefaces' Document and its demo.
Because in Primefaces, most components are compatible with Ajax, especially <p:commandButton/> because it has Ajax turned on by default.
In PrimeFaces, <p:commandButton> already has built-in ajax functionality. You don't need to use <f:ajax>. In fact, <f:ajax> cannot be used with PrimeFaces. If you really need to use it, you must use <p:ajax> instead.
To fix your issue, I think you should change you button like this:
<p:commandButton value="Register" actionListener="#{userRegister.register}" update="registerPanel" />

Resources