private void tv_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs <object> e)
        {
            scenario.SelectedNode = tv.SelectedItem as SceneNodeModel;
            var nodeType = scenario.SelectedNodeType;
            var handler  = scenario.GetNodeTypeHandler(nodeType);

            btnAddItem.IsEnabled    = handler?.SupportsObjectOperation(ObjectOperation.Add, nodeType) ?? false;
            btnDeleteItem.IsEnabled = handler?.SupportsObjectOperation(ObjectOperation.Remove, nodeType) ?? false;
            btnCopyItem.IsEnabled   = handler?.SupportsObjectOperation(ObjectOperation.Copy, nodeType) ?? false;
        }
Beispiel #2
0
        public void SelectObject(SceneNodeModel node, int itemIndex)
        {
            if (node == null || !isReady)
            {
                return;
            }

            if (itemIndex < 0)
            {
                return;
            }

            var handler = scenario.GetNodeTypeHandler(scenario.SelectedNodeType);

            renderer.SetSelectedElement(handler?.GetElement(node, itemIndex));
        }
        public void ShowProperties(SceneNodeModel node, int itemIndex)
        {
            context    = new MetaContext(scenario.Xml, scenario.ScenarioTag.CacheFile, scenario.ScenarioTag, scenario.MetadataStream);
            Visibility = Visibility.Hidden;
            rootNode   = null;
            altNodes.Clear();

            var nodeType = node?.NodeType ?? NodeType.None;
            var handler  = scenario.GetNodeTypeHandler(nodeType);
            var details  = handler?.GetPropertiesLocator(node, itemIndex);

            if (details == null)
            {
                CurrentItem = null;
                return;
            }

            rootNode    = details.RootNode;
            baseAddress = details.BaseAddress;
            if (details.AdditionalNodes != null)
            {
                altNodes.AddRange(details.AdditionalNodes);
            }
            CurrentItem = details.TargetObject;

            Reload();

            Visibility = Visibility.Visible;
        }