.
This commit is contained in:
+9
-14
@@ -245,11 +245,7 @@ impl Publisher {
|
||||
}
|
||||
}
|
||||
Message::URLInputChanged(value) => {
|
||||
if Url::parse(&value).is_ok() {
|
||||
self.url_input_valid = true;
|
||||
} else {
|
||||
self.url_input_valid = false;
|
||||
}
|
||||
self.url_input_valid = Url::parse(&value).is_ok();
|
||||
self.url_input = value;
|
||||
}
|
||||
Message::URLInputSubmitted => {
|
||||
@@ -295,13 +291,13 @@ impl Publisher {
|
||||
task = Task::done(Message::ShowNewDocumentButtons);
|
||||
}
|
||||
Message::LoadDocument(document) => {
|
||||
let nodes_to_look_up = document.dataset().quads.iter().map(|(_, quad)| {
|
||||
let nodes_to_look_up = document.dataset().quads.iter().flat_map(|(_, quad)| {
|
||||
let mut nodes = vec![ quad.predicate.clone() ];
|
||||
if let Some(object) = term_to_named_node(&quad.object) {
|
||||
nodes.push(object.clone());
|
||||
}
|
||||
nodes
|
||||
}).flatten().collect();
|
||||
}).collect();
|
||||
|
||||
let add_row_tasks = document.dataset().quads.iter().map(|(key, quad)| {
|
||||
let datatype_state = combo_box::State::new(self.abbreviated_datatypes.clone());
|
||||
@@ -578,12 +574,11 @@ impl Publisher {
|
||||
}
|
||||
}
|
||||
Message::NavigateToObject(key) => {
|
||||
if let Some(quad) = self.document.dataset_mut().quads.get_mut(key) {
|
||||
if let Term::NamedNode(node) = &quad.object {
|
||||
if let Some(quad) = self.document.dataset_mut().quads.get_mut(key)
|
||||
&& let Term::NamedNode(node) = &quad.object {
|
||||
let url = Url::parse(node.as_str()).expect("Invalid URL");
|
||||
task = Task::done(Message::URLInputChanged(url.to_string()))
|
||||
.chain(Task::done(Message::URLInputSubmitted));
|
||||
}
|
||||
}
|
||||
}
|
||||
Message::NavigateBack => {
|
||||
@@ -836,7 +831,7 @@ impl Publisher {
|
||||
search_state.entity_class_selection.as_ref(),
|
||||
Class::ALL,
|
||||
ToString::to_string,
|
||||
).on_select(|selection| Message::UpdateQueryClass(selection));
|
||||
).on_select(Message::UpdateQueryClass);
|
||||
|
||||
let mut columns = vec![table::column(text("CURIE"), |document: &HashMap<gl_search::Field, gl_search::OwnedValue>| {
|
||||
let iri = document.get(&Schema::iri_field())
|
||||
@@ -888,8 +883,8 @@ impl Publisher {
|
||||
}
|
||||
|
||||
pub(crate) fn view(&self, window: window::Id) -> Element<'_, Message> {
|
||||
if let Some(search_state) = &self.search_state
|
||||
&& search_state.window_id == window {
|
||||
if let Some(search_state) = &self.search_state &&
|
||||
search_state.window_id == window {
|
||||
return self.view_search_window(search_state);
|
||||
}
|
||||
|
||||
@@ -1074,4 +1069,4 @@ where
|
||||
)
|
||||
]
|
||||
.into()
|
||||
}
|
||||
}
|
||||
+10
-10
@@ -17,8 +17,7 @@ use ldp::middleware::BasicAuthMiddleware;
|
||||
use ldp::reqwest::Client;
|
||||
use ldp::reqwest_middleware::ClientBuilder;
|
||||
use ldp::traverse::Traverse;
|
||||
use oxigraph::io::{RdfFormat, RdfParser, RdfSerializer};
|
||||
use oxigraph::model::{Dataset, Graph, Triple, TripleRef};
|
||||
use oxigraph::model::{Graph, TripleRef};
|
||||
use tracing::{debug_span, error, field, Instrument};
|
||||
use tracing_subscriber::fmt::format::FmtSpan;
|
||||
use tracing_subscriber::layer::SubscriberExt;
|
||||
@@ -54,12 +53,13 @@ fn main() -> color_eyre::Result<()> {
|
||||
Some(String::from_utf8(std::fs::read(dataset_path)?)?)
|
||||
} else { None };
|
||||
|
||||
let mut request = OntologyQueryRequest::default();
|
||||
request.sparql_query = raw_query;
|
||||
request.turtle = graph;
|
||||
request.prefixes = HashMap::from_iter(gl_graph::PREFIXES.iter().map(|(name, iri)| (name.clone(), iri.clone())));
|
||||
request.base = args.base.clone();
|
||||
request.inferences_only = args.inferences_only;
|
||||
let request = OntologyQueryRequest {
|
||||
sparql_query: raw_query,
|
||||
turtle: graph,
|
||||
prefixes: HashMap::from_iter(gl_graph::PREFIXES.iter().map( | (name, iri) | (name.clone(), iri.clone()))),
|
||||
base: args.base.clone(),
|
||||
inferences_only: args.inferences_only,
|
||||
};
|
||||
|
||||
let runtime = tokio::runtime::Builder::new_multi_thread()
|
||||
.enable_all()
|
||||
@@ -77,7 +77,7 @@ fn main() -> color_eyre::Result<()> {
|
||||
});
|
||||
}
|
||||
Some(Command::Search(args)) => {
|
||||
let mut index = SearchIndex::builder()
|
||||
let index = SearchIndex::builder()
|
||||
.with_path("/home/alex/.local/share/org.graphofliberty.desktop/index")
|
||||
.build()
|
||||
.expect("Failed to build search index");
|
||||
@@ -142,7 +142,7 @@ fn main() -> color_eyre::Result<()> {
|
||||
Ok(rdf_source) => {
|
||||
let triples = rdf_source.dataset()
|
||||
.iter()
|
||||
.map(|quad| TripleRef::from(quad));
|
||||
.map(TripleRef::from);
|
||||
graph.extend(triples);
|
||||
rdf_source_count += 1;
|
||||
},
|
||||
|
||||
@@ -2,8 +2,7 @@ use iced::Task;
|
||||
use ldp::reqwest_middleware::ClientWithMiddleware;
|
||||
use ldp::ResourceRequestBuilder;
|
||||
use oxigraph::io::RdfFormat;
|
||||
use oxigraph::model::{Dataset, Graph, NamedNode, NamedNodeRef, NamedOrBlankNode, NamedOrBlankNodeRef, TermRef};
|
||||
use tracing::debug;
|
||||
use oxigraph::model::{Dataset, Graph, NamedNode, NamedNodeRef, NamedOrBlankNodeRef, TermRef};
|
||||
use url::Url;
|
||||
use gl_graph::class::Class;
|
||||
use gl_graph::ontology::{ConnectedOntology, OntologyBuilder, ResourceSelector};
|
||||
|
||||
@@ -71,10 +71,9 @@ where
|
||||
|
||||
#[must_use]
|
||||
pub fn on_input(mut self, on_input: impl Fn(String) -> Message + 'a) -> Self {
|
||||
let base_clone = self.base.clone();
|
||||
let wrapped = move |value: String| {
|
||||
let expanded_value = self.curie_helper.expand(base_clone, &value);
|
||||
on_input(expanded_value.unwrap_or_else(|| value))
|
||||
let expanded_value = self.curie_helper.expand(self.base, &value);
|
||||
on_input(expanded_value.unwrap_or(value))
|
||||
};
|
||||
|
||||
self.text_input = self.text_input.on_input(wrapped);
|
||||
@@ -214,21 +213,20 @@ where
|
||||
state.control = modifiers.control();
|
||||
state.shift = modifiers.shift();
|
||||
}
|
||||
Event::Mouse(mouse::Event::ButtonPressed(mouse::Button::Left)) => {
|
||||
if cursor.is_over(layout.bounds()) {
|
||||
if state.control
|
||||
&& let Some(on_control_click) = &self.on_control_click
|
||||
{
|
||||
shell.publish(on_control_click.clone());
|
||||
shell.capture_event();
|
||||
}
|
||||
Event::Mouse(mouse::Event::ButtonPressed(mouse::Button::Left))
|
||||
if cursor.is_over(layout.bounds()) => {
|
||||
if state.control
|
||||
&& let Some(on_control_click) = &self.on_control_click
|
||||
{
|
||||
shell.publish(on_control_click.clone());
|
||||
shell.capture_event();
|
||||
}
|
||||
|
||||
if state.shift
|
||||
&& let Some(on_shift_click) = &self.on_shift_click
|
||||
{
|
||||
shell.publish(on_shift_click.clone());
|
||||
shell.capture_event();
|
||||
}
|
||||
if state.shift
|
||||
&& let Some(on_shift_click) = &self.on_shift_click
|
||||
{
|
||||
shell.publish(on_shift_click.clone());
|
||||
shell.capture_event();
|
||||
}
|
||||
}
|
||||
_ => {}
|
||||
@@ -246,10 +244,9 @@ where
|
||||
);
|
||||
|
||||
let clipboard = shell.clipboard_mut();
|
||||
if let Some(Content::Text(content)) = &clipboard.write {
|
||||
if let Some(expanded) = self.curie_helper.expand(self.base, &content) {
|
||||
clipboard.write = Some(Content::Text(expanded));
|
||||
}
|
||||
if let Some(Content::Text(content)) = &clipboard.write &&
|
||||
let Some(expanded) = self.curie_helper.expand(self.base, content) {
|
||||
clipboard.write = Some(Content::Text(expanded));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user