示例#1
0
        public PreviewHelper(RangeListView listView, AbstractDb <int> db, CompactActIndexSelector selector,
                             FrameViewer frameViewer, Border gridSpriteMissing, TextBox tbSpriteMissing
                             )
        {
            _listView             = listView;
            _selector             = selector;
            _frameViewer          = frameViewer;
            _gridSpriteMissing    = gridSpriteMissing;
            _tbSpriteMissing      = tbSpriteMissing;
            _listView.ItemsSource = _jobs;

            if (db != null)
            {
                _metaGrf = db.ProjectDatabase.MetaGrf;
            }

            Db = db;

            _headReferenceDefault = new Act(ApplicationManager.GetResource("ref_head.act"), new Spr(ApplicationManager.GetResource("ref_head.spr")));
            _bodyReferenceDefault = new Act(ApplicationManager.GetResource("ref_body.act"), new Spr(ApplicationManager.GetResource("ref_body.spr")));

            _settings     = new FrameViewerSettings();
            _settings.Act = () => _act;
            _references   = new List <ActReference>();
            _references.Add(new ActReference {
                Act = DefaultBodyReference, Mode = ZMode.Back, Show = true
            });
            _references.Add(new ActReference {
                Act = DefaultHeadReference, Mode = ZMode.Back, Show = true
            });
            _settings.ReferencesGetter = () => _references;

            if (_selector != null)
            {
                _selector.Init(_frameViewer);
                _selector.Load(null);
                _selector.FrameChanged        += (s, p) => _frameViewer.Update();
                _selector.ActionChanged       += (s, p) => _frameViewer.Update();
                _selector.SpecialFrameChanged += (s, p) => _frameViewer.Update();
                _settings.SelectedAction       = () => _selector.SelectedAction;
                _settings.SelectedFrame        = () => _selector.SelectedFrame;
            }

            for (int i = 0; i < 104; i++)
            {
                _emptyAct.AddAction();
            }

            if (_frameViewer != null)
            {
                _frameViewer.InitComponent(_settings);
            }

            _listView.SelectionChanged += new SelectionChangedEventHandler(_jobChanged);
            _listView.PreviewMouseDown += _listView_PreviewMouseDown;
            _listView.PreviewMouseUp   += _listView_PreviewMouseDown;

            _previews.Add(new HeadgearPreview());
            _previews.Add(new ShieldPreview());
            _previews.Add(new WeaponPreview());
            _previews.Add(new GarmentPreview());
            _previews.Add(new NpcPreview());
            _previews.Add(new NullPreview());
        }