public code v1
This commit is contained in:
+131
@@ -0,0 +1,131 @@
|
||||
package flintstones.method.waspas.results.ui;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
import org.eclipse.e4.core.services.nls.Translation;
|
||||
import org.eclipse.swt.SWT;
|
||||
import org.eclipse.swt.events.SelectionAdapter;
|
||||
import org.eclipse.swt.events.SelectionEvent;
|
||||
import org.eclipse.swt.widgets.Composite;
|
||||
import org.eclipse.swt.widgets.Label;
|
||||
import org.eclipse.swt.widgets.Spinner;
|
||||
import org.rosuda.JRI.REXP;
|
||||
import org.rosuda.JRI.RVector;
|
||||
import flintstones.entity.method.phase.ui.PhaseMethodUI;
|
||||
import flintstones.helper.html.table.HtmlTextTable;
|
||||
import flintstones.method.waspas.results.WASPASResults;
|
||||
import flintstones.method.waspas.results.ui.messages.Messages;
|
||||
import flintstones.model.ui.service.UiService;
|
||||
|
||||
public class WASPASResultsUI extends PhaseMethodUI {
|
||||
|
||||
@Inject
|
||||
@Translation
|
||||
Messages msg;
|
||||
|
||||
/**
|
||||
* Phase model implementation
|
||||
*/
|
||||
WASPASResults model;
|
||||
|
||||
/**
|
||||
* Value selector for lambda variable
|
||||
*/
|
||||
Spinner lambda;
|
||||
|
||||
/**
|
||||
* Results table
|
||||
*/
|
||||
HtmlTextTable results;
|
||||
|
||||
@Override
|
||||
public void init() {
|
||||
model = (WASPASResults) this.getModel();
|
||||
model.loadData();
|
||||
|
||||
Composite base = this.getBaseComposite();
|
||||
UiService.setGridData(base, 9, 9, true, true);
|
||||
UiService.setGridLayout(base, 1);
|
||||
|
||||
|
||||
Composite lambdaComposite = new Composite(base, SWT.NONE);
|
||||
UiService.setGridData(lambdaComposite, 0, -1, true, false);
|
||||
UiService.setGridLayout(lambdaComposite, 2);
|
||||
Label textLambda = new Label(lambdaComposite, SWT.NONE);
|
||||
textLambda.setText("Lambda:");
|
||||
|
||||
lambda = new Spinner(lambdaComposite, SWT.NONE);
|
||||
lambda.setDigits(3);
|
||||
lambda.setMinimum(0);
|
||||
lambda.setMaximum(1000);
|
||||
lambda.setIncrement(1);
|
||||
lambda.setSelection(0);
|
||||
|
||||
Composite tableBase = new Composite(base, SWT.NONE);
|
||||
UiService.setGridData(tableBase, 9, 9, true, true);
|
||||
UiService.setGridLayout(tableBase, 1);
|
||||
lambda.addSelectionListener(new SelectionAdapter() {
|
||||
/**
|
||||
* Executes method on lambda value change
|
||||
*/
|
||||
@Override
|
||||
public void widgetSelected(SelectionEvent e) {
|
||||
createResultTable(tableBase);
|
||||
}
|
||||
});
|
||||
createResultTable(tableBase);
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates method results table
|
||||
*
|
||||
* @param base Composite
|
||||
*/
|
||||
private void createResultTable(Composite base) {
|
||||
REXP rexp = model.executeR(lambda.getSelection() / Math.pow(10, lambda.getDigits()));
|
||||
|
||||
int[] alts = (int[]) ((REXP) ((RVector) rexp.getContent()).get(0)).getContent();
|
||||
String[] rHeaders = new String[alts.length];
|
||||
for (int a = 0; a < alts.length; a++) {
|
||||
rHeaders[a] = model.allAlternatives()[alts[a] - 1].getName();
|
||||
}
|
||||
// Makes table data based on R-gui result table
|
||||
String[] cHeaders = msg.headers.split(",");
|
||||
String[][] values = new String[alts.length][cHeaders.length];
|
||||
double[] wsm = (double[]) ((REXP) ((RVector) rexp.getContent()).get(1)).getContent();
|
||||
double[] wpm = (double[]) ((REXP) ((RVector) rexp.getContent()).get(2)).getContent();
|
||||
double[] w = (double[]) ((REXP) ((RVector) rexp.getContent()).get(3)).getContent();
|
||||
int[] ranks = (int[]) ((REXP) ((RVector) rexp.getContent()).get(4)).getContent();
|
||||
|
||||
for (int i = 0; i < rHeaders.length; i++) {
|
||||
values[i][0] = Double.toString(wsm[i]);
|
||||
values[i][1] = Double.toString(wpm[i]);
|
||||
values[i][2] = Double.toString(w[i]);
|
||||
values[i][3] = Integer.toString(ranks[i]);
|
||||
}
|
||||
|
||||
if (results != null) {
|
||||
results.dispose();
|
||||
}
|
||||
|
||||
results = new HtmlTextTable(base, values, cHeaders, rHeaders);
|
||||
results.render();
|
||||
}
|
||||
|
||||
/**
|
||||
* Reloads phase view
|
||||
*/
|
||||
@Override
|
||||
public void refresh() {
|
||||
sendRefresh();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return false, last phase
|
||||
*/
|
||||
@Override
|
||||
protected boolean isForwardEnabled() {
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
package flintstones.method.waspas.results.ui.messages;
|
||||
|
||||
import org.eclipse.e4.core.services.nls.Message;
|
||||
|
||||
@Message
|
||||
public class Messages {
|
||||
public String headers;
|
||||
}
|
||||
+1
@@ -0,0 +1 @@
|
||||
headers=WSM, WPM, Q, Ranking
|
||||
+1
@@ -0,0 +1 @@
|
||||
headers=WSM, WPM, Q, Clasificación
|
||||
Reference in New Issue
Block a user