DoDataExchange
(
Boolean bFromControls
)
{
if (bFromControls)
{
Motifs eMotifsToCalculate = Motifs.None;
if (chkFan.Checked)
{
eMotifsToCalculate |= Motifs.Fan;
}
if (chkDConnector.Checked)
{
eMotifsToCalculate |= Motifs.DConnector;
Int32 iDConnectorMinimumAnchorVertices,
iDConnectorMaximumAnchorVertices;
if (
!ValidateNumericUpDown(nudDConnectorMinimumAnchorVertices,
"the minimum number of anchor vertices",
out iDConnectorMinimumAnchorVertices)
||
!ValidateNumericUpDown(nudDConnectorMaximumAnchorVertices,
"the maximum number of anchor vertices",
out iDConnectorMaximumAnchorVertices)
)
{
return (false);
}
else
{
// Don't require the minimum and maximum to be in the
// typical order.
m_oMotifUserSettings.DConnectorMinimumAnchorVertices =
Math.Min(iDConnectorMinimumAnchorVertices,
iDConnectorMaximumAnchorVertices);
m_oMotifUserSettings.DConnectorMaximumAnchorVertices =
Math.Max(iDConnectorMinimumAnchorVertices,
iDConnectorMaximumAnchorVertices);
}
}
if (chkClique.Checked)
{
eMotifsToCalculate |= Motifs.Clique;
Int32 iCliqueMinimumMemberVertices,
iCliqueMaximumMemberVertices;
if (
!ValidateNumericUpDown(nudCliqueMinimumMemberVertices,
"the minimum number of member vertices",
out iCliqueMinimumMemberVertices)
||
!ValidateNumericUpDown(nudCliqueMaximumMemberVertices,
"the maximum number of member vertices",
out iCliqueMaximumMemberVertices)
)
{
return (false);
}
else
{
// Don't require the minimum and maximum to be in the
// typical order.
m_oMotifUserSettings.CliqueMinimumMemberVertices =
Math.Min(iCliqueMinimumMemberVertices,
iCliqueMaximumMemberVertices);
m_oMotifUserSettings.CliqueMaximumMemberVertices =
Math.Max(iCliqueMinimumMemberVertices,
iCliqueMaximumMemberVertices);
}
}
m_oMotifUserSettings.MotifsToCalculate = eMotifsToCalculate;
}
else
{
chkFan.Checked = ShouldGroupByMotif(Motifs.Fan);
chkDConnector.Checked = ShouldGroupByMotif(Motifs.DConnector);
chkClique.Checked = ShouldGroupByMotif(Motifs.Clique);
nudDConnectorMinimumAnchorVertices.Value =
m_oMotifUserSettings.DConnectorMinimumAnchorVertices;
nudDConnectorMaximumAnchorVertices.Value =
m_oMotifUserSettings.DConnectorMaximumAnchorVertices;
nudCliqueMinimumMemberVertices.Value =
m_oMotifUserSettings.CliqueMinimumMemberVertices;
nudCliqueMaximumMemberVertices.Value =
m_oMotifUserSettings.CliqueMaximumMemberVertices;
EnableControls();
}
return (true);
}