diff --git a/src/main/java/com/metaweb/gridworks/browsing/facets/ListFacet.java b/src/main/java/com/metaweb/gridworks/browsing/facets/ListFacet.java index ced648ae3..4bdd4f6d5 100644 --- a/src/main/java/com/metaweb/gridworks/browsing/facets/ListFacet.java +++ b/src/main/java/com/metaweb/gridworks/browsing/facets/ListFacet.java @@ -16,17 +16,23 @@ import com.metaweb.gridworks.browsing.filters.RowFilter; import com.metaweb.gridworks.expr.Evaluable; import com.metaweb.gridworks.expr.MetaParser; import com.metaweb.gridworks.model.Project; +import com.metaweb.gridworks.util.JSONUtilities; public class ListFacet implements Facet { protected List _selection = new LinkedList(); + + // If true, then facet won't show the blank and error choices + protected boolean _omitBlank; + protected boolean _omitError; + protected boolean _selectBlank; protected boolean _selectError; protected String _name; protected String _expression; - protected String _columnName; + protected String _columnName; protected int _cellIndex; - protected Evaluable _eval; + protected Evaluable _eval; // computed protected List _choices = new LinkedList(); @@ -50,14 +56,14 @@ public class ListFacet implements Facet { } writer.endArray(); - if (_selectBlank || _blankCount > 0) { + if (!_omitBlank && (_selectBlank || _blankCount > 0)) { writer.key("blankChoice"); writer.object(); writer.key("s"); writer.value(_selectBlank); writer.key("c"); writer.value(_blankCount); writer.endObject(); } - if (_selectError || _errorCount > 0) { + if (!_omitError && (_selectError || _errorCount > 0)) { writer.key("errorChoice"); writer.object(); writer.key("s"); writer.value(_selectError); @@ -98,12 +104,11 @@ public class ListFacet implements Facet { _selection.add(nominalFacetChoice); } - if (o.has("selectBlank")) { - _selectBlank = o.getBoolean("selectBlank"); - } - if (o.has("selectError")) { - _selectError = o.getBoolean("selectError"); - } + _omitBlank = JSONUtilities.getBoolean(o, "omitBlank", false); + _omitError = JSONUtilities.getBoolean(o, "omitError", false); + + _selectBlank = JSONUtilities.getBoolean(o, "selectBlank", false); + _selectError = JSONUtilities.getBoolean(o, "selectError", false); } public RowFilter getRowFilter() { diff --git a/src/main/java/com/metaweb/gridworks/operations/ReconOperation.java b/src/main/java/com/metaweb/gridworks/operations/ReconOperation.java index ba5e86f93..d8bb36ca5 100644 --- a/src/main/java/com/metaweb/gridworks/operations/ReconOperation.java +++ b/src/main/java/com/metaweb/gridworks/operations/ReconOperation.java @@ -30,7 +30,7 @@ import com.metaweb.gridworks.process.LongRunningProcess; import com.metaweb.gridworks.process.Process; public class ReconOperation extends EngineDependentOperation { - final protected String _columnName; + final protected String _columnName; final protected ReconConfig _reconConfig; static public AbstractOperation reconstruct(Project project, JSONObject obj) throws Exception { @@ -130,6 +130,7 @@ public class ReconOperation extends EngineDependentOperation { writer.key("name"); writer.value(_columnName + ": judgment"); writer.key("columnName"); writer.value(_columnName); writer.key("expression"); writer.value("cell.recon.judgment"); + writer.key("omitError"); writer.value(true); writer.endObject(); writer.key("facetOptions"); writer.object(); diff --git a/src/main/webapp/scripts/facets/list-facet.js b/src/main/webapp/scripts/facets/list-facet.js index f0f11751d..00f49fe45 100644 --- a/src/main/webapp/scripts/facets/list-facet.js +++ b/src/main/webapp/scripts/facets/list-facet.js @@ -38,6 +38,8 @@ ListFacet.prototype.getJSON = function() { name: this._config.name, columnName: this._config.columnName, expression: this._config.expression, + omitBlank: "omitBlank" in this._config ? this._config.omitBlank : false, + omitError: "omitError" in this._config ? this._config.omitError : false, selection: [], selectBlank: this._blankChoice != null && this._blankChoice.s, selectError: this._errorChoice != null && this._errorChoice.s diff --git a/src/main/webapp/scripts/views/data-table-column-header-ui.js b/src/main/webapp/scripts/views/data-table-column-header-ui.js index f0d38a48d..c8080b8ae 100644 --- a/src/main/webapp/scripts/views/data-table-column-header-ui.js +++ b/src/main/webapp/scripts/views/data-table-column-header-ui.js @@ -301,7 +301,8 @@ DataTableColumnHeaderUI.prototype._createMenuForColumnHeader = function(elmt) { { "name" : self._column.name + ": judgment", "columnName" : self._column.name, - "expression" : "cell.recon.judgment" + "expression" : "cell.recon.judgment", + "omitError" : true }, { "scroll" : false @@ -334,7 +335,8 @@ DataTableColumnHeaderUI.prototype._createMenuForColumnHeader = function(elmt) { { "name" : self._column.name + ": best candidate's type match", "columnName" : self._column.name, - "expression" : "cell.recon.features.typeMatch" + "expression" : "cell.recon.features.typeMatch", + "omitError" : true }, { "scroll" : false @@ -350,7 +352,8 @@ DataTableColumnHeaderUI.prototype._createMenuForColumnHeader = function(elmt) { { "name" : self._column.name + ": best candidate's name match", "columnName" : self._column.name, - "expression" : "cell.recon.features.nameMatch" + "expression" : "cell.recon.features.nameMatch", + "omitError" : true }, { "scroll" : false @@ -400,7 +403,8 @@ DataTableColumnHeaderUI.prototype._createMenuForColumnHeader = function(elmt) { { "name" : self._column.name + ": best candidate's types", "columnName" : self._column.name, - "expression" : "cell.recon.best.type" + "expression" : "cell.recon.best.type", + "omitError" : true } ); }