/* * Copyright 2013 State University of New York at Oswego * * Licensed under the Apache License, Version 2.0 (the "License");  * you may not use this file except in compliance with the License.  * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software  * distributed under the License is distributed on an "AS IS" BASIS,  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  * See the License for the specific language governing permissions and  * limitations under the License. */ package edu.oswego.csc480_hci521_2013.client.ui; import com.google.gwt.user.client.ui.Composite; import com.google.gwt.user.client.ui.FlexTable; import java.util.List; /**' * */ public abstract class AbstractConfusionMatrix extends Composite implements ConfusionMatrixView { @Override public void setIdentifier(String identifier) { this.getIdentifier().setInnerText(identifier); } @Override public void hideProgress() { getProgress().getStyle().setVisibility(com.google.gwt.dom.client.Style.Visibility.HIDDEN); } @Override public void setProgress(String progressUpdate) { this.getProgress().setAttribute("value", progressUpdate); } @Override public void setClassificationError(String classificationError) { this.getClassificationError().setInnerText(classificationError); } @Override public void setResponseVariable(String responseVariable) { this.getResponseVariable().setInnerText(responseVariable); } @Override public void setNtree(String numberTrees) { this.getNtree().setInnerText(numberTrees); } @Override public void setMtry(String mtry) { this.getMtry().setInnerText(mtry); } @Override public void setRowsSkipped(String rows) { this.getRowsSkipped().setInnerText(rows); } @Override public void setRows(String rows) { this.getRows().setInnerText(rows); } @Override public void setMatrixType(String matrixType) { this.getMatrixType().setInnerText(matrixType); } @Override public void setTreesGenerated(String treesGenerated) { this.getTreesGenerated().setInnerText(treesGenerated); } @Override public void setLeavesMin(String leavesMin) { this.getLeavesMin().setInnerText(leavesMin); } @Override public void setLeavesMean(String leavesMean) { this.getLeavesMean().setInnerText(leavesMean); } @Override public void setLeavesMax(String leavesMax) { this.getLeavesMax().setInnerText(leavesMax); } @Override public void setDepthMin(String depthMin) { this.getDepthMin().setInnerText(depthMin); } @Override public void setDepthMean(String depthMean) { this.getDepthMean().setInnerText(depthMean); } @Override public void setDepthMax(String depthMax) { this.getDepthMax().setInnerText(depthMax); } @Override public void setIgnoredUsed(String ign) { this.getIgnoredUsed().setInnerText(ign); } @Override public void setClassWeightsUsed(String cwu) { this.getClassWeightsUsed().setInnerText(cwu); } @Override public void setMatrixHeaders(List<String> headers) { // TODO: we really only need to set the labels once... // repeatedly setting them might cause some flickering FlexTable matrixTable = getMatrixTable(); matrixTable.setText(0, 0, "Actual/Predicted"); for (int x = 0; x < headers.size(); x++) { matrixTable.setText(0, x + 1, headers.get(x)); } matrixTable.setText(0, headers.size() + 1, "Errors"); for (int x = 0; x < headers.size(); x++) { matrixTable.setText(x + 1, 0, headers.get(x)); } matrixTable.setText(headers.size() + 1, 0, "Totals"); matrixTable.getRowFormatter().setStylePrimaryName(0, getStyle().tableHeader()); matrixTable.getColumnFormatter().setStylePrimaryName(0, getStyle().tableHeader()); } @Override public void setMatrixScores(List<List<Integer>> scores) { // TODO: need to set errors/totals somewhere! for (int i = 0; i < scores.size(); i++) { List<Integer> row = scores.get(i); for (int j = 0; j < row.size(); j++) { getMatrixTable().setText(i + 1, j + 1, row.get(j).toString()); if (i == j) { getMatrixTable().getCellFormatter().setStylePrimaryName( i + 1, j + 1, getStyle().cfmatrixHighlight()); } } } } @Override public void setErrors(List<String> errors) { int col = getMatrixTable().getCellCount(0) - 1; int row = 1; for (String e : errors) { getMatrixTable().setText(row, col, e); row++; } } @Override public void setTotals(List<String> totals) { int col = 1; int row = getMatrixTable().getRowCount() - 1; for (String t : totals) { getMatrixTable().setText(row, col, t); col++; } } }