public DialogConfigurationNotifier(NotifierBase notifier)
        {
            InitializeComponent();

            _notifier = notifier;

            //init base
            _soundChanged = false;
            _imageChanged = false;

            GroupSound.AllowDrop = true;
            GroupImage.AllowDrop = true;



            //init from data

            IsEnabled.Checked = notifier.IsEnabled;

            PlaysSound.Checked = notifier.PlaysSound;
            SoundPath.Text     = notifier.SoundPath;
            SoundVolume.Value  = notifier.SoundVolume;
            LoopsSound.Checked = notifier.LoopsSound;

            DrawsImage.Checked = notifier.DialogData.DrawsImage;
            ImagePath.Text     = notifier.DialogData.ImagePath;

            ShowsDialog.Checked     = notifier.ShowsDialog;
            TopMostFlag.Checked     = notifier.DialogData.TopMost;
            Alignment.SelectedIndex = (int)notifier.DialogData.Alignment;
            LocationX.Value         = notifier.DialogData.Location.X;
            LocationY.Value         = notifier.DialogData.Location.Y;
            DrawsMessage.Checked    = notifier.DialogData.DrawsMessage;
            HasFormBorder.Checked   = notifier.DialogData.HasFormBorder;
            AccelInterval.Value     = notifier.AccelInterval / 1000;
            ClosingInterval.Value   = notifier.DialogData.ClosingInterval / 1000;
            for (int i = 0; i < (int)NotifierDialogClickFlags.HighestBit; i++)
            {
                CloseList.SetItemChecked(i, ((int)notifier.DialogData.ClickFlag & (1 << i)) != 0);
            }
            CloseList.SetItemChecked((int)NotifierDialogClickFlags.HighestBit, notifier.DialogData.CloseOnMouseMove);
            ShowWithActivation.Checked = notifier.DialogData.ShowWithActivation;
            ForeColorPreview.ForeColor = notifier.DialogData.ForeColor;
            BackColorPreview.ForeColor = notifier.DialogData.BackColor;
            LevelBorder.Maximum        = ExpTable.ShipMaximumLevel;

            NotifierDamage ndmg = notifier as NotifierDamage;

            if (ndmg != null)
            {
                NotifiesBefore.Checked        = ndmg.NotifiesBefore;
                NotifiesNow.Checked           = ndmg.NotifiesNow;
                NotifiesAfter.Checked         = ndmg.NotifiesAfter;
                ContainsNotLockedShip.Checked = ndmg.ContainsNotLockedShip;
                ContainsSafeShip.Checked      = ndmg.ContainsSafeShip;
                ContainsFlagship.Checked      = ndmg.ContainsFlagship;
                LevelBorder.Value             = ndmg.LevelBorder;
                NotifiesAtEndpoint.Checked    = ndmg.NotifiesAtEndpoint;
            }
            else
            {
                GroupDamage.Visible = false;
                GroupDamage.Enabled = false;
            }

            NotifierAnchorageRepair nanc = notifier as NotifierAnchorageRepair;

            if (nanc != null)
            {
                AnchorageRepairNotificationLevel.SelectedIndex = nanc.NotificationLevel;
            }
            else
            {
                GroupAnchorageRepair.Visible = false;
                GroupAnchorageRepair.Enabled = false;
            }


            DialogOpenSound.Filter = "音楽ファイル|" + string.Join(";", Utility.MediaPlayer.SupportedExtensions.Select(s => "*." + s)) + "|File|*";
        }
        public DialogConfigurationNotifier(NotifierBase notifier)
        {
            InitializeComponent();

            _notifier = notifier;

            //init base
            _soundChanged = false;
            _imageChanged = false;

            GroupSound.AllowDrop = true;
            GroupImage.AllowDrop = true;



            //init from data

            IsEnabled.Checked = notifier.IsEnabled;

            PlaysSound.Checked = notifier.PlaysSound;
            SoundPath.Text     = notifier.SoundPath;

            DrawsImage.Checked = notifier.DialogData.DrawsImage;
            ImagePath.Text     = notifier.DialogData.ImagePath;

            ShowsDialog.Checked     = notifier.ShowsDialog;
            TopMostFlag.Checked     = notifier.DialogData.TopMost;
            Alignment.SelectedIndex = (int)notifier.DialogData.Alignment;
            LocationX.Value         = notifier.DialogData.Location.X;
            LocationY.Value         = notifier.DialogData.Location.Y;
            DrawsMessage.Checked    = notifier.DialogData.DrawsMessage;
            HasFormBorder.Checked   = notifier.DialogData.HasFormBorder;
            AccelInterval.Value     = notifier.AccelInterval / 1000;
            ClosingInterval.Value   = notifier.DialogData.ClosingInterval / 1000;
            for (int i = 0; i < (int)NotifierDialogClickFlags.HighestBit; i++)
            {
                CloseList.SetItemChecked(i, ((int)notifier.DialogData.ClickFlag & (1 << i)) != 0);
            }
            CloseList.SetItemChecked((int)NotifierDialogClickFlags.HighestBit, notifier.DialogData.CloseOnMouseMove);
            ShowWithActivation.Checked = notifier.DialogData.ShowWithActivation;
            ForeColorPreview.ForeColor = notifier.DialogData.ForeColor;
            BackColorPreview.ForeColor = notifier.DialogData.BackColor;

            NotifierDamage ndmg = notifier as NotifierDamage;

            if (ndmg != null)
            {
                NotifiesBefore.Checked        = ndmg.NotifiesBefore;
                NotifiesNow.Checked           = ndmg.NotifiesNow;
                NotifiesAfter.Checked         = ndmg.NotifiesAfter;
                ContainsNotLockedShip.Checked = ndmg.ContainsNotLockedShip;
                ContainsSafeShip.Checked      = ndmg.ContainsSafeShip;
                ContainsFlagship.Checked      = ndmg.ContainsFlagship;
                LevelBorder.Value             = ndmg.LevelBorder;
                NotifiesAtEndpoint.Checked    = ndmg.NotifiesAtEndpoint;
            }
            else
            {
                GroupDamage.Visible = false;
                GroupDamage.Enabled = false;
            }
        }