예제 #1
0
 public TaskInformationForm(ITask <IGraph> task, String subtitle)
     : this((ITask <T>)task, subtitle)
 {
     CrossThreadSetEnabled(this.btnViewResults, task.State == TaskState.Completed && task.Result != null);
     this.btnViewResults.Click += new EventHandler(delegate(Object sender, EventArgs e)
     {
         if (task.Result != null)
         {
             if (task.Result is IGraph)
             {
                 GraphViewerForm graphViewer = new GraphViewerForm((IGraph)task.Result, subtitle);
                 graphViewer.MdiParent       = this.MdiParent;
                 graphViewer.Show();
             }
             else
             {
                 MessageBox.Show("Unable to show Results as did not get a Graph as expected", "Unable to Show Results", MessageBoxButtons.OK, MessageBoxIcon.Error);
             }
         }
         else
         {
             MessageBox.Show("Results are not available", "Results Unavailable", MessageBoxButtons.OK, MessageBoxIcon.Error);
         }
     });
 }
예제 #2
0
        private void mnuViewResults_Click(object sender, EventArgs e)
        {
            if (this.lvwTasks.SelectedItems.Count > 0)
            {
                ListViewItem item = this.lvwTasks.SelectedItems[0];
                Object       tag  = item.Tag;

                if (tag is QueryTask)
                {
                    QueryTask qTask = (QueryTask)tag;
                    if (qTask.State == TaskState.Completed && qTask.Result != null)
                    {
                        Object result = qTask.Result;

                        if (result is IGraph)
                        {
                            GraphViewerForm graphViewer = new GraphViewerForm((IGraph)result, this._manager.ToString());
                            CrossThreadSetMdiParent(graphViewer);
                            CrossThreadShow(graphViewer);
                        }
                        else if (result is SparqlResultSet)
                        {
                            ResultSetViewerForm resultsViewer = new ResultSetViewerForm((SparqlResultSet)result, this._manager.ToString(), qTask.Query.NamespaceMap);
                            CrossThreadSetMdiParent(resultsViewer);
                            CrossThreadShow(resultsViewer);
                        }
                        else
                        {
                            CrossThreadMessage("Unable to show Query Results as did not get a Graph/Result Set as expected", "Unable to Show Results", MessageBoxIcon.Error);
                        }
                    }
                    else
                    {
                        MessageBox.Show("Query Results are unavailable", "Results Unavailable", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }
                else if (tag is ITask <IGraph> )
                {
                    ITask <IGraph> graphTask = (ITask <IGraph>)tag;
                    if (graphTask.Result != null)
                    {
                        GraphViewerForm graphViewer = new GraphViewerForm(graphTask.Result, this._manager.ToString());
                        CrossThreadSetMdiParent(graphViewer);
                        CrossThreadShow(graphViewer);
                    }
                    else
                    {
                        CrossThreadMessage("Unable to show Graph as there is no Graph as expected", "Unable to Show Graph", MessageBoxIcon.Error);
                    }
                }
            }
        }
예제 #3
0
 public TaskInformationForm(ITask <IGraph> task, String subtitle)
     : this((ITask <T>)task, subtitle)
 {
     CrossThreadSetEnabled(this.btnViewResults, task.State == TaskState.Completed && task.Result != null);
     this.btnViewResults.Click += delegate
     {
         if (task.Result != null)
         {
             GraphViewerForm graphViewer = new GraphViewerForm(task.Result, subtitle);
             graphViewer.MdiParent = this.MdiParent;
             graphViewer.Show();
         }
         else
         {
             MessageBox.Show(Resources.Graph_Unavailable_Text, Resources.Graph_Unavailable_Title, MessageBoxButtons.OK, MessageBoxIcon.Error);
         }
     };
 }
예제 #4
0
 private void PreviewGraphCallback(ITask <IGraph> task)
 {
     if (task.State == TaskState.Completed && task.Result != null)
     {
         GraphViewerForm graphViewer = new GraphViewerForm(task.Result, this._manager.ToString());
         CrossThreadSetMdiParent(graphViewer);
         CrossThreadShow(graphViewer);
     }
     else
     {
         if (task.Error != null)
         {
             CrossThreadMessage("Preview Graph Failed due to the following error: " + task.Error.Message, "Preview Graph Failed", MessageBoxIcon.Error);
         }
         else
         {
             CrossThreadMessage("Preview Graph Failed due to an unknown error", "Preview Graph Failed", MessageBoxIcon.Error);
         }
     }
 }
예제 #5
0
 public TaskInformationForm(QueryTask task, String subtitle)
     : this((ITask <T>)task, subtitle)
 {
     this.ShowQueryInformation(task);
     if (task.Query == null)
     {
         task.StateChanged += new TaskStateChanged(delegate()
         {
             this.ShowQueryInformation(task);
         });
     }
     this.btnViewResults.Click += new EventHandler(delegate(Object sender, EventArgs e)
     {
         if (task.Result != null)
         {
             if (task.Result is IGraph)
             {
                 GraphViewerForm graphViewer = new GraphViewerForm((IGraph)task.Result, subtitle);
                 graphViewer.MdiParent       = this.MdiParent;
                 graphViewer.Show();
             }
             else if (task.Result is SparqlResultSet)
             {
                 INamespaceMapper nsmap            = (task is QueryTask ? ((QueryTask)task).Query.NamespaceMap : null);
                 ResultSetViewerForm resultsViewer = new ResultSetViewerForm((SparqlResultSet)task.Result, subtitle, nsmap);
                 resultsViewer.MdiParent           = this.MdiParent;
                 resultsViewer.Show();
             }
             else
             {
                 MessageBox.Show("Unable to show Query Results as did not get a Graph/Result Set as expected", "Unable to Show Results", MessageBoxButtons.OK, MessageBoxIcon.Error);
             }
         }
         else
         {
             MessageBox.Show("Query Results are not available", "Results Unavailable", MessageBoxButtons.OK, MessageBoxIcon.Error);
         }
     });
 }
예제 #6
0
 public TaskInformationForm(QueryTask task, String subtitle)
     : this((ITask <T>)task, subtitle)
 {
     this.ShowQueryInformation(task);
     if (task.Query == null)
     {
         task.StateChanged += () => this.ShowQueryInformation(task);
     }
     this.btnViewResults.Click += delegate
     {
         if (task.Result != null)
         {
             if (task.Result is IGraph)
             {
                 GraphViewerForm graphViewer = new GraphViewerForm((IGraph)task.Result, subtitle);
                 graphViewer.MdiParent = this.MdiParent;
                 graphViewer.Show();
             }
             else if (task.Result is SparqlResultSet)
             {
                 INamespaceMapper    nsmap         = task.Query.NamespaceMap;
                 ResultSetViewerForm resultsViewer = new ResultSetViewerForm((SparqlResultSet)task.Result, nsmap, subtitle);
                 resultsViewer.MdiParent = this.MdiParent;
                 resultsViewer.Show();
             }
             else
             {
                 MessageBox.Show(Resources.QueryResults_NotViewable_Text, Resources.QueryResults_NotViewable_Title, MessageBoxButtons.OK, MessageBoxIcon.Error);
             }
         }
         else
         {
             MessageBox.Show(Resources.QueryResults_Unavailable_Text, Resources.QueryResults_Unavailable_Title, MessageBoxButtons.OK, MessageBoxIcon.Error);
         }
     };
 }
예제 #7
0
        private void btnQuery_Click(object sender, EventArgs e)
        {
            try
            {
                SparqlQueryParser parser = new SparqlQueryParser();
                SparqlQuery       query  = parser.ParseFromString(this.txtQuery.Text);
                query.Timeout = (long)this.numTimeout.Value;
                query.PartialResultsOnTimeout = this.chkPartialResults.Checked;

                if (this._tripleCount == 0 && this._noDataWarning)
                {
                    switch (MessageBox.Show("You have no data loaded to query over - do you wish to run this query anyway?  Press Abort if you'd like to load data first, Retry to continue anyway or Ignore to continue anyway and suppress this message during this session", "Continue Query without Data", MessageBoxButtons.AbortRetryIgnore, MessageBoxIcon.Question))
                    {
                    case DialogResult.Abort:
                        return;

                    case DialogResult.Ignore:
                        //Set the Ignore flag then continue anyway
                        this._noDataWarning = false;
                        break;

                    default:
                        //Continue anyway
                        break;
                    }
                }

                this.LogStartQuery(query);

                //Evaluate the Query
                Object results;
                if (this._logExplain)
                {
                    using (StreamWriter writer = new StreamWriter(this._logfile, true, Encoding.UTF8))
                    {
                        ExplainQueryProcessor   explainer = new ExplainQueryProcessor(this._dataset, (ExplanationLevel.OutputToTrace | ExplanationLevel.ShowAll | ExplanationLevel.AnalyseAll) ^ ExplanationLevel.ShowThreadID);
                        TextWriterTraceListener listener  = new TextWriterTraceListener(writer, "SparqlGUI");
                        Trace.Listeners.Add(listener);
                        try
                        {
                            results = explainer.ProcessQuery(query);
                        }
                        finally
                        {
                            Trace.Listeners.Remove(listener);
                        }

                        writer.Close();
                    }
                }
                else
                {
                    results = this._processor.ProcessQuery(query);
                }

                //Process the Results
                if (results is IGraph)
                {
                    this.LogEndQuery(query, (IGraph)results);

                    if (this.chkViewResultsInApp.Checked)
                    {
                        GraphViewerForm graphViewer = new GraphViewerForm((IGraph)results, "SPARQL GUI");
                        graphViewer.Show();
                    }
                    else
                    {
                        this._rdfwriter.Save((IGraph)results, "temp" + this._rdfext);
                        System.Diagnostics.Process.Start("temp" + this._rdfext);
                    }
                }
                else if (results is SparqlResultSet)
                {
                    this.LogEndQuery(query, (SparqlResultSet)results);

                    if (this.chkViewResultsInApp.Checked)
                    {
                        ResultSetViewerForm resultSetViewer = new ResultSetViewerForm((SparqlResultSet)results, query.NamespaceMap, "SPARQL GUI");
                        resultSetViewer.Show();
                    }
                    else
                    {
                        this._resultswriter.Save((SparqlResultSet)results, "temp" + this._resultsext);
                        System.Diagnostics.Process.Start("temp" + this._resultsext);
                    }
                }
                else
                {
                    throw new RdfException("Unexpected Result Type");
                }
                this.stsLastQuery.Text = "Last Query took " + query.QueryExecutionTime;
            }
            catch (RdfParseException parseEx)
            {
                this.LogMalformedQuery(parseEx);
                MessageBox.Show("Query failed to parse:\n" + parseEx.Message, "Query Failed");
            }
            catch (RdfQueryException queryEx)
            {
                this.LogFailedQuery(queryEx);
                MessageBox.Show("Query failed during Execution:\n" + queryEx.Message, "Query Failed");
            }
            catch (Exception ex)
            {
                this.LogFailedQuery(ex);
                MessageBox.Show("Query failed:\n" + ex.Message + "\n" + ex.StackTrace, "Query Failed");
            }
        }
예제 #8
0
        private void QueryCallback(ITask <Object> task)
        {
            QueryTask qTask = null;

            if (task is QueryTask)
            {
                qTask = (QueryTask)task;
                if (qTask.Query != null)
                {
                    try
                    {
                        if (task.State == TaskState.Completed)
                        {
                            this.CrossThreadSetText(this.stsCurrent, "Query Completed OK (Took " + qTask.Query.QueryExecutionTime.Value.ToString() + ")");
                        }
                        else
                        {
                            this.CrossThreadSetText(this.stsCurrent, "Query Failed (Took " + qTask.Query.QueryExecutionTime.Value.ToString() + ")");
                        }
                    }
                    catch
                    {
                        //Ignore Exceptions in reporting Execution Time
                    }
                }
            }
            else
            {
                CrossThreadMessage("Unexpected Error - QueryCallback was invoked but the given task was not a QueryTask", "Unexpected Error", MessageBoxIcon.Exclamation);
                return;
            }

            if (task.State == TaskState.Completed)
            {
                Object result = task.Result;

                if (result is IGraph)
                {
                    GraphViewerForm graphViewer = new GraphViewerForm((IGraph)result, this._manager.ToString());
                    CrossThreadSetMdiParent(graphViewer);
                    CrossThreadShow(graphViewer);
                }
                else if (result is SparqlResultSet)
                {
                    ResultSetViewerForm resultsViewer = new ResultSetViewerForm((SparqlResultSet)result, this._manager.ToString(), qTask.Query.NamespaceMap);
                    CrossThreadSetMdiParent(resultsViewer);
                    CrossThreadShow(resultsViewer);
                }
                else
                {
                    CrossThreadMessage("Unable to show Query Results as did not get a Graph/Result Set as expected", "Unable to Show Results", MessageBoxIcon.Error);
                }
            }
            else
            {
                if (task.Error != null)
                {
                    CrossThreadMessage("Query Failed due to the following error: " + task.Error.Message, "Query Failed", MessageBoxIcon.Error);
                }
                else
                {
                    CrossThreadMessage("Query Failed due to an unknown error", "Query Failed", MessageBoxIcon.Error);
                }
            }
        }