コード例 #1
0
ファイル: Editor.cs プロジェクト: zparr/ATF
        /// <summary>
        /// Notifies the client that its Control has been activated. Activation occurs when
        /// the Control gets focus, or a parent "host" Control gets focus.</summary>
        /// <param name="control">Client Control that was activated</param>
        /// <remarks>This method is only called by IControlHostService if the Control was previously
        /// registered for this IControlHostClient.</remarks>
        void IControlHostClient.Activate(Control control)
        {
            EventSequenceDocument document = control.Tag as EventSequenceDocument;

            if (document != null)
            {
                m_documentRegistry.ActiveDocument = document;

                EventSequenceContext context = document.As <EventSequenceContext>();
                m_contextRegistry.ActiveContext = context;
            }
        }
コード例 #2
0
        private void contextRegistry_ContextAdded(object sender, ItemInsertedEventArgs <object> e)
        {
            EventSequenceContext context = Adapters.As <EventSequenceContext>(e.Item);

            if (context != null)
            {
                context.ListView.DragOver += new DragEventHandler(listView_DragOver);
                context.ListView.DragDrop += new DragEventHandler(listView_DragDrop);
                context.ListView.MouseUp  += new MouseEventHandler(listView_MouseUp);

                context.ListViewAdapter.LabelEdited +=
                    new EventHandler <LabelEditedEventArgs <object> >(listViewAdapter_LabelEdited);
            }
        }
コード例 #3
0
        private void contextRegistry_ContextAdded(object sender, ItemInsertedEventArgs <object> e)
        {
            EventSequenceContext context = e.Item.As <EventSequenceContext>();

            if (context != null)
            {
                context.ListView.DragOver += listView_DragOver;
                context.ListView.DragDrop += listView_DragDrop;
                context.ListView.MouseUp  += listView_MouseUp;

                context.ListViewAdapter.LabelEdited +=
                    listViewAdapter_LabelEdited;
            }
        }
コード例 #4
0
ファイル: EventSequenceDocument.cs プロジェクト: zparr/ATF
        private void UpdateControlInfo()
        {
            string filePath = Uri.LocalPath;
            string fileName = Path.GetFileName(filePath);

            if (Dirty)
            {
                fileName += "*";
            }

            EventSequenceContext context = this.As <EventSequenceContext>();

            context.ControlInfo.Name        = fileName;
            context.ControlInfo.Description = filePath;
        }
コード例 #5
0
ファイル: Editor.cs プロジェクト: tkdgur4427/SGDManagedEngine
        /// <summary>
        /// Opens or creates a document at the given URI</summary>
        /// <param name="uri">Document URI</param>
        /// <returns>Document or null if the document couldn't be opened or created</returns>
        public IDocument Open(Uri uri)
        {
            DomNode node     = null;
            string  filePath = uri.LocalPath;
            string  fileName = Path.GetFileName(filePath);

            if (File.Exists(filePath))
            {
                // read existing document using a custom file reader
                using (FileStream stream = new FileStream(filePath, FileMode.Open, FileAccess.Read))
                {
                    node = EventSequenceDocument.Read(stream).DomNode;
                }
            }
            else
            {
                // create new document by creating a Dom node of the root type
                node = new DomNode(DomTypes.eventSequenceType.Type, DomTypes.eventSequenceRootElement);
            }

            EventSequenceDocument document = null;

            if (node != null)
            {
                // Initialize Dom extensions now that the data is complete
                node.InitializeExtensions();

                EventSequenceContext context = node.As <EventSequenceContext>();

                ControlInfo controlInfo = new ControlInfo(fileName, filePath, StandardControlGroup.Center);
                context.ControlInfo = controlInfo;

                // set document URI
                document     = node.As <EventSequenceDocument>();
                document.Uri = uri;

                context.ListView.Tag = document;

                // show the ListView control
                m_controlHostService.RegisterControl(context.ListView, controlInfo, this);
            }

            return(document);
        }
コード例 #6
0
ファイル: Editor.cs プロジェクト: tkdgur4427/SGDManagedEngine
        /// <summary>
        /// Closes the document and removes any views of it from the UI</summary>
        /// <param name="document">Document to close</param>
        public void Close(IDocument document)
        {
            EventSequenceContext context = document.As <EventSequenceContext>();

            m_controlHostService.UnregisterControl(context.ListView);
            context.ControlInfo = null;

            // close all active EditingContexts in the document
            foreach (DomNode node in context.DomNode.Subtree)
            {
                foreach (EditingContext editingContext in node.AsAll <EditingContext>())
                {
                    m_contextRegistry.RemoveContext(editingContext);
                }
            }

            // close the document
            m_documentRegistry.Remove(document);
        }
コード例 #7
0
        private void contextRegistry_ActiveContextChanged(object sender, EventArgs e)
        {
            // make sure we're always tracking the most recently active EventSequenceContext
            EventSequenceContext context = m_contextRegistry.GetMostRecentContext <EventSequenceContext>();

            if (m_eventSequenceContext != context)
            {
                if (m_eventSequenceContext != null)
                {
                    m_eventSequenceContext.SelectionChanged -= eventSequenceContext_SelectionChanged;
                }

                m_eventSequenceContext = context;

                if (m_eventSequenceContext != null)
                {
                    // track the most recently active EventSequenceContext's selection to get the most recently
                    //  selected event.
                    m_eventSequenceContext.SelectionChanged += eventSequenceContext_SelectionChanged;
                }

                UpdateEvent();
            }
        }
コード例 #8
0
ファイル: Editor.cs プロジェクト: tkdgur4427/SGDManagedEngine
        /// <summary>
        /// Makes the document visible to the user</summary>
        /// <param name="document">Document to show</param>
        public void Show(IDocument document)
        {
            EventSequenceContext context = document.As <EventSequenceContext>();

            m_controlHostService.Show(context.ListView);
        }