Пример #1
0
        private void openMiClicked(Object sender, EventArgs e)
        {
            if (changesMade)
            {
                DialogResult result = discardChangesDialog();
                if (result == DialogResult.No)
                {
                    saveMiClicked(new object(), new EventArgs());
                }
                else if (result == DialogResult.Cancel)
                {
                    return;
                }
            }
            OpenFileDialog openFD = new OpenFileDialog();

            openFD.Filter           = "Dialog (*.xml)|*.xml";
            openFD.RestoreDirectory = true;
            DialogResult dialogResult = openFD.ShowDialog();

            if (dialogResult == DialogResult.OK)
            {
                fileName       = openFD.FileName.ToString();
                conversation   = MyXml.load(fileName);
                NpcIdGenerator = new IdGenerator();
                DialogNode[] nodes = conversation.getDialog();
                for (int i = 0; i < nodes.Length; i++)
                {
                    NpcIdGenerator.addId(nodes[i].id);
                }

                this.Text          = "Dialog Manager - " + conversation.npcName;
                treeListView.Roots = new ArrayList(conversation.
                                                   getRootNodes());
                treeListView.ExpandAll();
                changesMade = false;
            }
        }
Пример #2
0
        private void cellEditValidating(object sender, CellEditEventArgs e)
        {
            if (e.SubItemIndex == 2 && e.RowObject is DialogResponse)
            {
                DialogResponse r = (DialogResponse)e.RowObject;
                if (((ComboBox)e.Control).SelectedItem == null)
                {
                    treeListView.RefreshObject(r);
                    return;
                }
                r.link = (String)((ComboBox)e.Control).SelectedItem;
                if (r.link.Equals("End conversation"))
                {
                    r.linkType = ResponseLinkType.endConversation;
                }
                else if (!r.link.Equals("End & switch conversation"))
                {
                    r.linkType = ResponseLinkType.dialogNode;
                }

                treeListView.RefreshObject(r);
            }
            else if (e.SubItemIndex == 1 && e.RowObject is DialogNode)
            {
                String     id   = (String)e.NewValue;
                DialogNode node = (DialogNode)e.RowObject;
                if (NpcIdGenerator.contains(id) && !id.Equals(node.id))
                {
                    showError("String is not unique", "Error");
                    e.NewValue = node.id;
                    e.Cancel   = true;
                    return;
                }
                if (id.Equals(""))
                {
                    showError("Id can not be empty.", "Error");
                    e.NewValue = node.id;
                    e.Cancel   = true;
                    return;
                }

                NpcIdGenerator.removeId(node.id);
                node.id = (String)e.NewValue;
                NpcIdGenerator.addId(node.id);
                treeListView.RefreshObject(node);

                //change links of responses where link == oldId
                List <DialogResponse> responses = new List <DialogResponse>();
                for (int i = 0; i < conversation.getRootNodes().Length; i++)
                {
                    DialogNode n = conversation.getRootNode(i);
                    responses.AddRange(getResponses(n));
                }
                for (int i = 0; i < responses.Count; i++)
                {
                    DialogResponse r = responses[i];
                    if (r.link.Equals((String)e.Value))
                    {
                        r.link = node.id;
                        treeListView.RefreshObject(r);
                    }
                }
            }

            if (!changesMade)
            {
                this.Text = this.Text + "*";
            }
            changesMade = true;
        }
Пример #3
0
Файл: GUI.cs Проект: VicBoss/KR
        private void openMiClicked(Object sender, EventArgs e)
        {
            if (changesMade)
            {
                DialogResult result = discardChangesDialog();
                if (result == DialogResult.No)
                {
                    saveMiClicked(new object(), new EventArgs());
                }
                else if (result == DialogResult.Cancel)
                    return;
            }
            OpenFileDialog openFD = new OpenFileDialog();
            openFD.Filter = "Dialog (*.xml)|*.xml";
            openFD.RestoreDirectory = true;
            DialogResult dialogResult = openFD.ShowDialog();
            if (dialogResult == DialogResult.OK)
            {
                fileName = openFD.FileName.ToString();
                conversation = MyXml.load(fileName);
                NpcIdGenerator = new IdGenerator();
                DialogNode[] nodes = conversation.getDialog();
                for (int i = 0; i < nodes.Length; i++)
                    NpcIdGenerator.addId(nodes[i].id);

                this.Text = "Dialog Manager - " + conversation.npcName;
                treeListView.Roots = new ArrayList(conversation.
                    getRootNodes());
                treeListView.ExpandAll();
                changesMade = false;
            }
        }