Shorter QuickStatements preview and better export UI

This commit is contained in:
Antonin Delpeuch 2017-09-05 22:49:17 +01:00
parent 035e7b82bc
commit f763e8c6ad
5 changed files with 52 additions and 35 deletions

View File

@ -1,18 +1,18 @@
/* /*
ExporterManager.MenuItems.push({});//add separator ExporterManager.MenuItems.push({});//add separator
ExporterManager.MenuItems.push( ExporterManager.MenuItems.push(
{ {
"id" : "exportRdfXml", "id" : "exportRdfXml",
"label":"RDF as RDF/XML", "label":"RDF as RDF/XML",
"click": function() { RdfExporterMenuBar.exportRDF("rdf", "rdf");} "click": function() { RdfExporterMenuBar.exportRDF("rdf", "rdf");}
} }
); );
ExporterManager.MenuItems.push( ExporterManager.MenuItems.push(
{ {
"id" : "exportRdfTurtle", "id" : "exportRdfTurtle",
"label":"RDF as Turtle", "label":"RDF as Turtle",
"click": function() { RdfExporterMenuBar.exportRDF("Turtle", "ttl"); } "click": function() { RdfExporterMenuBar.exportRDF("Turtle", "ttl"); }
} }
); );
RdfExporterMenuBar = {}; RdfExporterMenuBar = {};
@ -62,12 +62,13 @@ RdfExporterMenuBar.editRdfSchema = function(reset) {
}; };
*/ */
ExporterManager.MenuItems.push({});
ExporterManager.MenuItems.push( ExporterManager.MenuItems.push(
{ {
"id" : "exportQuickStatements", "id" : "exportQuickStatements",
"label":"QuickStatements", "label":"QuickStatements",
"click": function() { WikibaseExporterMenuBar.exportTo("quickstatements"); } "click": function() { WikibaseExporterMenuBar.exportTo("quickstatements"); }
} }
); );
WikibaseExporterMenuBar = {}; WikibaseExporterMenuBar = {};
@ -102,18 +103,23 @@ WikibaseExporterMenuBar.exportTo = function(format) {
//extend the column header menu //extend the column header menu
$(function(){ $(function(){
ExtensionBar.MenuItems.push( ExtensionBar.MenuItems.push(
{ {
"id":"reconcile", "id":"reconcile",
"label": "Wikidata", "label": "Wikidata",
"submenu" : [ "submenu" : [
{ {
"id": "wikidata/edit-schema", "id": "wikidata/edit-schema",
label: "Edit Wikibase schema...", label: "Edit Wikibase schema...",
click: function() { SchemaAlignmentDialog.launch(false); } click: function() { SchemaAlignmentDialog.launch(false); }
}, },
] {
} "id":"wikidata/export-qs",
); "label": "Export to QuickStatements",
"click": function() { WikibaseExporterMenuBar.exportTo("quickstatements"); }
}
]
}
);
}); });

View File

@ -34,8 +34,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
package org.openrefine.wikidata.commands; package org.openrefine.wikidata.commands;
import java.io.IOException; import java.io.IOException;
import java.io.LineNumberReader;
import java.io.StringReader;
import java.io.StringWriter; import java.io.StringWriter;
import java.util.Properties;
import javax.servlet.ServletException; import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
@ -60,8 +61,6 @@ public class PreviewWikibaseSchemaCommand extends Command {
try { try {
Project project = getProject(request); Project project = getProject(request);
Engine engine = getEngine(request, project);
FilteredRows filteredRows = engine.getAllFilteredRows();
response.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8");
response.setHeader("Content-Type", "application/json"); response.setHeader("Content-Type", "application/json");
@ -79,6 +78,18 @@ public class PreviewWikibaseSchemaCommand extends Command {
QuickStatementsExporter exporter = new QuickStatementsExporter(); QuickStatementsExporter exporter = new QuickStatementsExporter();
exporter.translateSchema(project, schema, stringWriter); exporter.translateSchema(project, schema, stringWriter);
String fullQS = stringWriter.toString();
stringWriter = new StringWriter();
LineNumberReader reader = new LineNumberReader(new StringReader(fullQS));
reader.setLineNumber(0);
int maxQSLinesForPreview = 50;
for(int i = 0; i != maxQSLinesForPreview; i++) {
stringWriter.write(reader.readLine()+"\n");
}
if (reader.getLineNumber() == maxQSLinesForPreview) {
stringWriter.write("...");
}
writer.key("quickstatements"); writer.key("quickstatements");
writer.value(stringWriter.toString()); writer.value(stringWriter.toString());
} }

View File

@ -7,13 +7,13 @@ import org.wikidata.wdtk.datamodel.interfaces.StringValue;
public abstract class WbStringExpr extends WbValueExpr { public abstract class WbStringExpr extends WbValueExpr {
public abstract StringValue evaluate(ExpressionContext ctxt) throws SkipStatementException; public abstract StringValue evaluate(ExpressionContext ctxt) throws SkipStatementException;
public static WbStringExpr fromJSON(JSONObject obj) throws JSONException { public static WbStringExpr fromJSON(JSONObject obj) throws JSONException {
String type = obj.getString(jsonTypeKey); String type = obj.getString(jsonTypeKey);
if (WbStringConstant.jsonType.equals(type)) { if (WbStringConstant.jsonType.equals(type)) {
return WbStringConstant.fromJSON(obj); return WbStringConstant.fromJSON(obj);
} else if (WbStringVariable.jsonType.equals(type)) { } else if (WbStringVariable.jsonType.equals(type)) {
return WbStringVariable.fromJSON2(obj); return WbStringVariable.fromJSON(obj);
} else { } else {
throw new JSONException("unknown type for WbItemExpr"); throw new JSONException("unknown type for WbItemExpr");
} }

View File

@ -36,7 +36,7 @@ public class WbStringVariable extends WbStringExpr {
writer.value(columnName); writer.value(columnName);
} }
public static WbStringVariable fromJSON2(JSONObject obj) throws JSONException { public static WbStringExpr fromJSON(JSONObject obj) throws JSONException {
return new WbStringVariable(obj.getString("columnName")); return new WbStringVariable(obj.getString("columnName"));
} }

View File

@ -27,7 +27,7 @@ public abstract class WbValueExpr extends BiJsonizable {
} else if (WbItemVariable.jsonType.equals(type)) { } else if (WbItemVariable.jsonType.equals(type)) {
valueExpr = WbItemVariable.fromJSON(obj); valueExpr = WbItemVariable.fromJSON(obj);
} else if (WbStringVariable.jsonType.equals(type)) { } else if (WbStringVariable.jsonType.equals(type)) {
valueExpr = WbStringVariable.fromJSON2(obj); valueExpr = WbStringVariable.fromJSON(obj);
} else if (WbStringConstant.jsonType.equals(type)) { } else if (WbStringConstant.jsonType.equals(type)) {
valueExpr = WbStringConstant.fromJSON(obj); valueExpr = WbStringConstant.fromJSON(obj);
} else { } else {