private void SelectRank( Rank rank )
{
if ( rank == null ) {
if ( vRanks.SelectedIndex != -1 ) {
vRanks.ClearSelected();
return;
}
DisableRankOptions();
return;
}
if ( vRanks.SelectedIndex != rank.Index ) {
vRanks.SelectedIndex = rank.Index;
return;
}
selectedRank = rank;
tRankName.Text = rank.Name;
ApplyColor( bColorRank, Color.ParseToIndex( rank.Color ) );
tPrefix.Text = rank.Prefix;
foreach ( var box in permissionLimitBoxes.Values ) {
box.SelectRank( rank );
}
xReserveSlot.Checked = rank.ReservedSlot;
HiddenBox.Checked = rank.IsHidden;
xKickIdle.Checked = rank.IdleKickTimer > 0;
nKickIdle.Value = rank.IdleKickTimer;
nKickIdle.Enabled = xKickIdle.Checked;
xAntiGrief.Checked = ( rank.AntiGriefBlocks > 0 && rank.AntiGriefSeconds > 0 );
nAntiGriefBlocks.Value = rank.AntiGriefBlocks;
nAntiGriefBlocks.Enabled = xAntiGrief.Checked;
nAntiGriefSeconds.Value = rank.AntiGriefSeconds;
nAntiGriefSeconds.Enabled = xAntiGrief.Checked;
xDrawLimit.Checked = ( rank.DrawLimit > 0 );
nDrawLimit.Value = rank.DrawLimit;
nCopyPasteSlots.Value = rank.CopySlots;
nFillLimit.Value = rank.FillLimit;
xAllowSecurityCircumvention.Checked = rank.AllowSecurityCircumvention;
foreach ( ListViewItem item in vPermissions.Items ) {
item.Checked = rank.Permissions[item.Index];
if ( item.Checked ) {
item.Font = bold;
} else {
item.Font = vPermissions.Font;
}
}
foreach ( ListViewItem item in vPermissions.Items ) {
CheckPermissionConsistency( ( Permission )item.Tag, item.Checked );
}
xDrawLimit.Enabled = rank.Can( Permission.Draw ) || rank.Can( Permission.CopyAndPaste );
nDrawLimit.Enabled = xDrawLimit.Checked;
xAllowSecurityCircumvention.Enabled = rank.Can( Permission.ManageWorlds ) || rank.Can( Permission.ManageZones );
gRankOptions.Enabled = true;
lPermissions.Enabled = true;
vPermissions.Enabled = true;
bDeleteRank.Enabled = true;
bRaiseRank.Enabled = ( selectedRank != RankManager.HighestRank );
bLowerRank.Enabled = ( selectedRank != RankManager.LowestRank );
}