From 0d0c9c5c2f97ef3bc0dc1228a69af00533d26481 Mon Sep 17 00:00:00 2001 From: Luciano Barcellos Date: Mon, 23 Nov 2020 07:01:09 -0300 Subject: [PATCH] In-view button to activate validation --- .../validation/ui/ValidateCommand.java | 20 ++++++++++--------- .../ui/ValidationResultDocument.java | 1 - .../ui/ValidationResultTextView.java | 16 ++++++++++++++- .../ufo/protege/validation/ui/resultView.html | 16 +++++++-------- 4 files changed, 34 insertions(+), 19 deletions(-) diff --git a/src/main/java/br/ufes/inf/nemo/ufo/protege/validation/ui/ValidateCommand.java b/src/main/java/br/ufes/inf/nemo/ufo/protege/validation/ui/ValidateCommand.java index 1c8fab3..1c09968 100644 --- a/src/main/java/br/ufes/inf/nemo/ufo/protege/validation/ui/ValidateCommand.java +++ b/src/main/java/br/ufes/inf/nemo/ufo/protege/validation/ui/ValidateCommand.java @@ -9,9 +9,9 @@ import br.ufes.inf.nemo.ufo.protege.Singleton; import br.ufes.inf.nemo.ufo.protege.sandbox.LogDocument; import br.ufes.inf.nemo.ufo.protege.validation.Result; -import br.ufes.inf.nemo.ufo.protege.validation.Validation; import br.ufes.inf.nemo.ufo.protege.validation.Validator; import java.awt.event.ActionEvent; +import org.protege.editor.owl.model.OWLModelManager; import org.protege.editor.owl.ui.action.ProtegeOWLAction; import org.protege.editor.owl.ui.view.cls.ToldOWLClassHierarchyViewComponent; @@ -21,27 +21,29 @@ */ @EditorKitMenuAction( id = "ufopp.validate.menuItem", - path = "org.protege.editor.core.application.menu.FileMenu/SlotAA-Z", + path = "br.ufes.inf.nemo.ufo-protege-plugin.PatternMenu/SlotB-A", name = "Validate GUFO rules" ) public class ValidateCommand extends ProtegeOWLAction { ToldOWLClassHierarchyViewComponent test; - @Override - public void actionPerformed(ActionEvent ae) { - Validator validator = Validator.get(getOWLModelManager()); - LogDocument logDocument = Singleton.get( - getOWLModelManager(), LogDocument.class); + public static void run(final OWLModelManager owlModelManager) { + Validator validator = Validator.get(owlModelManager); + LogDocument logDocument = Singleton.get(owlModelManager, LogDocument.class); Result result = validator.validate(); logDocument.append(result.toString()); logDocument.append("\n"); - ValidationResultDocument resultDocument = Singleton.get( - getOWLModelManager(), ValidationResultDocument.class); + ValidationResultDocument resultDocument = Singleton.get(owlModelManager, ValidationResultDocument.class); resultDocument.setResult(result); } + @Override + public void actionPerformed(ActionEvent ae) { + run(getOWLModelManager()); + } + @Override public void initialise() throws Exception { diff --git a/src/main/java/br/ufes/inf/nemo/ufo/protege/validation/ui/ValidationResultDocument.java b/src/main/java/br/ufes/inf/nemo/ufo/protege/validation/ui/ValidationResultDocument.java index a3d1e29..88a2b92 100644 --- a/src/main/java/br/ufes/inf/nemo/ufo/protege/validation/ui/ValidationResultDocument.java +++ b/src/main/java/br/ufes/inf/nemo/ufo/protege/validation/ui/ValidationResultDocument.java @@ -8,7 +8,6 @@ import br.ufes.inf.nemo.ufo.protege.Singleton; import br.ufes.inf.nemo.ufo.protege.Util; import br.ufes.inf.nemo.ufo.protege.validation.Result; -import br.ufes.inf.nemo.ufo.protege.validation.Rule; import br.ufes.inf.nemo.ufo.protege.validation.Violation; import br.ufes.inf.nemo.ufo.protege.validation.helpers.ObjectGraphNode; import java.io.IOException; diff --git a/src/main/java/br/ufes/inf/nemo/ufo/protege/validation/ui/ValidationResultTextView.java b/src/main/java/br/ufes/inf/nemo/ufo/protege/validation/ui/ValidationResultTextView.java index fc205a5..b90fbd7 100644 --- a/src/main/java/br/ufes/inf/nemo/ufo/protege/validation/ui/ValidationResultTextView.java +++ b/src/main/java/br/ufes/inf/nemo/ufo/protege/validation/ui/ValidationResultTextView.java @@ -14,6 +14,8 @@ import javax.swing.event.HyperlinkEvent; import static javax.swing.event.HyperlinkEvent.EventType.ACTIVATED; import javax.swing.event.HyperlinkListener; +import javax.swing.text.html.FormSubmitEvent; +import javax.swing.text.html.HTMLEditorKit; import org.apache.log4j.Logger; import org.protege.editor.owl.model.OWLModelManager; import org.protege.editor.owl.model.OWLWorkspace; @@ -52,6 +54,8 @@ protected void initialiseOWLView() throws Exception { JTextPane resultTextPane = new JTextPane(); resultTextPane.setEditable(false); resultTextPane.setContentType("text/html"); + HTMLEditorKit kit = (HTMLEditorKit) resultTextPane.getEditorKit(); + kit.setAutoFormSubmission(false); resultTextPane.setDocument(resultDocument.getDocument()); JScrollPane resultTextScrollPane = new JScrollPane(resultTextPane); @@ -65,7 +69,17 @@ protected void disposeOWLView() { @Override public void hyperlinkUpdate(HyperlinkEvent he) { - if (ACTIVATED == he.getEventType()) { + if (he instanceof FormSubmitEvent) { + final URL url = he.getURL(); + if ("gufo.command".equals(url.getHost())) { + final OWLModelManager modelManager = getOWLModelManager(); + switch (url.getPath()) { + case "/validate": + ValidateCommand.run(modelManager); + break; + } + } + } else if (ACTIVATED == he.getEventType()) { final OWLModelManager modelManager = getOWLModelManager(); final OWLWorkspace workspace = getOWLWorkspace(); final OWLSelectionModel selection = workspace.getOWLSelectionModel(); diff --git a/src/main/resources/br/ufes/inf/nemo/ufo/protege/validation/ui/resultView.html b/src/main/resources/br/ufes/inf/nemo/ufo/protege/validation/ui/resultView.html index cebe656..9605a46 100644 --- a/src/main/resources/br/ufes/inf/nemo/ufo/protege/validation/ui/resultView.html +++ b/src/main/resources/br/ufes/inf/nemo/ufo/protege/validation/ui/resultView.html @@ -6,27 +6,27 @@