package com.axiastudio.suite;
import com.axiastudio.suite.pratiche.IDettaglio;
import com.axiastudio.suite.pratiche.entities.Pratica;
import com.axiastudio.suite.procedimenti.SimpleWorkFlow;
import com.trolltech.qt.gui.*;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.PrintStream;
/**
* User: tiziano
* Date: 09/12/13
* Time: 11:40
*/
public class AdminConsole extends QMainWindow {
private final QTextEdit textEdit;
private final QTextEdit textOut;
//private Map<String, Object> map = new HashMap<String, Object>();
private Object obj;
public AdminConsole(QWidget parent, Object obj) {
super(parent);
this.obj = obj;
QWidget widget = new QWidget();
QVBoxLayout layout = new QVBoxLayout();
widget.setLayout(layout);
QPushButton testButton = new QPushButton("Test");
testButton.clicked.connect(this, "esegui()");
layout.addWidget(testButton);
textEdit = new QTextEdit();
layout.addWidget(textEdit);
textOut = new QTextEdit();
layout.addWidget(textOut);
this.setCentralWidget(widget);
}
private void esegui(){
// redirect System.out
PrintStream originalOut = System.out;
ByteArrayOutputStream newOut = new ByteArrayOutputStream();
System.setOut(new PrintStream(newOut));
SimpleWorkFlow wf=null;
if( obj instanceof Pratica){
wf = new SimpleWorkFlow((Pratica) obj);
} else if( obj instanceof IDettaglio){
wf = new SimpleWorkFlow((IDettaglio) obj);
}
String groovySource = textEdit.toPlainText();
Object res = wf.eseguiClosure(groovySource);
try {
newOut.flush();
} catch (IOException e) {
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
}
String groovyOutput = newOut.toString();
groovyOutput += "\n\nresult: " + wf.getResult();
groovyOutput += "\n\nreturn: " + res;
textOut.setText(groovyOutput);
// restore original System.out
System.setOut(originalOut);
}
}