package pt.estgp.estgweb.domain;
import jomm.dao.impl.AbstractDao;
import org.jboss.util.Objects;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.data.general.Dataset;
import pt.estgp.estgweb.Globals;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.domain.dao.impl.*;
import java.io.File;
import java.io.IOException;
import java.util.*;
/**
* @author: Duarte Santos
* @date: 09-05-2011
* @time: 23:53
* @email: a12564 [at] estgp [dot] pt
*/
public class Main
{
public static Survey createSurvey
(User user
)
{
Survey survey = DomainObjectFactory.
createSurveyImpl();
survey.
setStartDate(new 5+0%2Fdocs%2Fapi+Date">Date());
survey.
setSemester("S2");
survey.
setYear("2010");
survey.
setOwner(user
);
SurveyDao.
getInstance().
save(survey
);
return survey
;
}
public static List
<SurveyStructuralNode
> createStructuralNodes
(Survey survey
)
{
List
<SurveyStructuralNode
> nodes =
new ArrayList
<SurveyStructuralNode
>();
List
<String
> nodeTexts =
new ArrayList
<String
>();
nodeTexts.
add("201011");
nodeTexts.
add("Engenharia Informática");
nodeTexts.
add("Semestre1");
nodeTexts.
add("Semestre2");
nodeTexts.
add("Teoria da Computação");
nodeTexts.
add("Redes de computadores I");
nodeTexts.
add("Introdução à Programação");
nodeTexts.
add("Análise de Matemática I");
int numNodes = nodeTexts.
size();
int i =
0;
while(numNodes
> 0
)
{
nodes.
add(DomainObjectFactory.
createSurveyStructuralNodeImpl());
nodes.
get(i
).
setSurvey(survey
);
nodes.
get(i
).
setNodes(new HashSet
<SurveyStructuralNode
>(0
));
i++
;
numNodes--
;
}
nodes.
get(0
).
setMsg(nodeTexts.
get(0
));
nodes.
get(1
).
setMsg(nodeTexts.
get(1
));
nodes.
get(2
).
setMsg(nodeTexts.
get(2
));
nodes.
get(3
).
setMsg(nodeTexts.
get(3
));
nodes.
get(4
).
setMsg(nodeTexts.
get(4
));
nodes.
get(5
).
setMsg(nodeTexts.
get(5
));
nodes.
get(6
).
setMsg(nodeTexts.
get(6
));
nodes.
get(7
).
setMsg(nodeTexts.
get(7
));
nodes.
get(0
).
getNodes().
add(nodes.
get(1
));
nodes.
get(1
).
getNodes().
add(nodes.
get(2
));
nodes.
get(1
).
getNodes().
add(nodes.
get(3
));
nodes.
get(2
).
getNodes().
add(nodes.
get(4
));
nodes.
get(3
).
getNodes().
add(nodes.
get(5
));
nodes.
get(3
).
getNodes().
add(nodes.
get(6
));
nodes.
get(3
).
getNodes().
add(nodes.
get(7
));
SurveyStructuralNodeDao.
getInstance().
save(nodes.
get(0
));
SurveyStructuralNodeDao.
getInstance().
save(nodes.
get(1
));
SurveyStructuralNodeDao.
getInstance().
save(nodes.
get(2
));
SurveyStructuralNodeDao.
getInstance().
save(nodes.
get(3
));
SurveyStructuralNodeDao.
getInstance().
save(nodes.
get(4
));
SurveyStructuralNodeDao.
getInstance().
save(nodes.
get(5
));
SurveyStructuralNodeDao.
getInstance().
save(nodes.
get(6
));
SurveyStructuralNodeDao.
getInstance().
save(nodes.
get(7
));
return nodes
;
}
public static SurveyResponse createSurveyResponses
(User user, SurveyStructuralNode node
)
{
SurveyResponse response = DomainObjectFactory.
createSurveyResponseImpl();
response.
setStructuralNode(node
);
response.
setAnswered(true);
response.
setOwner(user
);
SurveyResponseDao.
getInstance().
save(response
);
return response
;
}
public static List
<SurveyQuestion
> createSurveyQuestions
(Survey survey
)
{
List
<SurveyQuestion
> questions =
new ArrayList
<SurveyQuestion
>();
List
<String
> questionTexts =
new ArrayList
<String
>();
questionTexts.
add("Pergunta numero 1");
questionTexts.
add("Pergunta numero 2");
questionTexts.
add("Pergunta numero 3");
int numQuestions = questionTexts.
size();
int i =
0;
while(numQuestions
> 0
)
{
questions.
add(DomainObjectFactory.
createSurveyQuestionImpl());
questions.
get(i
).
setSurvey(survey
);
questions.
get(i
).
setLabelpt(questionTexts.
get(i
));
SurveyQuestionDao.
getInstance().
save(questions.
get(i
));
i++
;
numQuestions--
;
}
return questions
;
}
public static List
<SurveyQuestionItem
> createSurveyQuestionItems
(List
<SurveyQuestion
> questions
)
{
List
<SurveyQuestionItem
> items =
new ArrayList
<SurveyQuestionItem
>();
List
<String
> itemsText =
new ArrayList
<String
>();
itemsText.
add("Item numero 1-1");
itemsText.
add("Item numero 1-2");
itemsText.
add("Item numero 1-3");
itemsText.
add("");
itemsText.
add("");
int numItems = itemsText.
size();
int i =
0;
while(numItems
> 0
)
{
items.
add(DomainObjectFactory.
createSurveyQuestionItemImpl());
items.
get(i
).
setLabelpt(itemsText.
get(i
));
i++
;
numItems--
;
}
items.
get(0
).
setQuestion(questions.
get(0
));
items.
get(1
).
setQuestion(questions.
get(0
));
items.
get(2
).
setQuestion(questions.
get(0
));
items.
get(3
).
setQuestion(questions.
get(1
));
items.
get(4
).
setQuestion(questions.
get(2
));
SurveyQuestionItemDao.
getInstance().
save(items.
get(0
));
SurveyQuestionItemDao.
getInstance().
save(items.
get(1
));
SurveyQuestionItemDao.
getInstance().
save(items.
get(2
));
SurveyQuestionItemDao.
getInstance().
save(items.
get(3
));
SurveyQuestionItemDao.
getInstance().
save(items.
get(4
));
return items
;
}
public static List
<SurveyQuestionCandidateAnswer
> createSurveyQuestionCandidateAnswers
(List
<SurveyQuestionItem
> items
)
{
List
<SurveyQuestionCandidateAnswer
> candidates =
new ArrayList
<SurveyQuestionCandidateAnswer
>();
List
<String
> candidatesText =
new ArrayList
<String
>();
candidatesText.
add("Candidate numero 1-1");
candidatesText.
add("Candidate numero 1-2");
candidatesText.
add("Candidate numero 1-3");
candidatesText.
add("Candidate numero 2-1");
candidatesText.
add("Candidate numero 2-2");
candidatesText.
add("Candidate numero 2-3");
candidatesText.
add("Candidate numero 3-1");
candidatesText.
add("Candidate numero 3-2");
candidatesText.
add("Candidate numero 3-3");
int numCandidates = candidatesText.
size();
int i =
0;
while(numCandidates
> 0
)
{
candidates.
add(DomainObjectFactory.
createSurveyQuestionCandidateAnswerImpl());
candidates.
get(i
).
setLabelpt(candidatesText.
get(i
));
i++
;
numCandidates--
;
}
candidates.
get(0
).
setQuestionItem(items.
get(0
));
candidates.
get(0
).
setQuestionItem(items.
get(1
));
candidates.
get(0
).
setQuestionItem(items.
get(2
));
candidates.
get(0).
setType("radio");
candidates.
get(1
).
setQuestionItem(items.
get(0
));
candidates.
get(1
).
setQuestionItem(items.
get(1
));
candidates.
get(1
).
setQuestionItem(items.
get(2
));
candidates.
get(1).
setType("radio");
candidates.
get(2
).
setQuestionItem(items.
get(0
));
candidates.
get(2
).
setQuestionItem(items.
get(1
));
candidates.
get(2
).
setQuestionItem(items.
get(2
));
candidates.
get(2).
setType("radio");
candidates.
get(3
).
setQuestionItem(items.
get(3
));
candidates.
get(3).
setType("radio");
candidates.
get(4
).
setQuestionItem(items.
get(3
));
candidates.
get(4).
setType("radio");
candidates.
get(5
).
setQuestionItem(items.
get(3
));
candidates.
get(5).
setType("radio");
candidates.
get(6
).
setQuestionItem(items.
get(4
));
candidates.
get(6).
setType("checkbox");
candidates.
get(7
).
setQuestionItem(items.
get(4
));
candidates.
get(7).
setType("checkbox");
candidates.
get(8
).
setQuestionItem(items.
get(4
));
candidates.
get(8).
setType("checkbox");
SurveyQuestionCandidateAnswerDao.
getInstance().
save(candidates.
get(0
));
SurveyQuestionCandidateAnswerDao.
getInstance().
save(candidates.
get(1
));
SurveyQuestionCandidateAnswerDao.
getInstance().
save(candidates.
get(2
));
SurveyQuestionCandidateAnswerDao.
getInstance().
save(candidates.
get(3
));
SurveyQuestionCandidateAnswerDao.
getInstance().
save(candidates.
get(4
));
SurveyQuestionCandidateAnswerDao.
getInstance().
save(candidates.
get(5
));
SurveyQuestionCandidateAnswerDao.
getInstance().
save(candidates.
get(6
));
SurveyQuestionCandidateAnswerDao.
getInstance().
save(candidates.
get(7
));
SurveyQuestionCandidateAnswerDao.
getInstance().
save(candidates.
get(8
));
return candidates
;
}
public static List
<SurveyQuestionAnswer
> createSurveyQuestionAnswers
(SurveyResponse response, List
<SurveyQuestionCandidateAnswer
> candidates
)
{
List
<SurveyQuestionAnswer
> answers =
new ArrayList
<SurveyQuestionAnswer
>();
int numAnswers =
6;
int i =
0;
while(numAnswers
> 0
)
{
answers.
add(DomainObjectFactory.
createSurveyQuestionAnswerImpl());
answers.
get(i
).
setResponse(response
);
i++
;
numAnswers--
;
}
answers.
get(0
).
setCandidateAnswer(candidates.
get(0
));
answers.
get(1
).
setCandidateAnswer(candidates.
get(1
));
answers.
get(2
).
setCandidateAnswer(candidates.
get(1
));
answers.
get(3
).
setCandidateAnswer(candidates.
get(4
));
answers.
get(4
).
setCandidateAnswer(candidates.
get(7
));
answers.
get(5
).
setCandidateAnswer(candidates.
get(8
));
SurveyQuestionAnswerDao.
getInstance().
save(answers.
get(0
));
SurveyQuestionAnswerDao.
getInstance().
save(answers.
get(1
));
SurveyQuestionAnswerDao.
getInstance().
save(answers.
get(2
));
SurveyQuestionAnswerDao.
getInstance().
save(answers.
get(3
));
SurveyQuestionAnswerDao.
getInstance().
save(answers.
get(4
));
SurveyQuestionAnswerDao.
getInstance().
save(answers.
get(5
));
return answers
;
}
public static void main
(1.5.0/docs/api/java/lang/String.html">String[] args
)
{
AbstractDao.
getCurrentSession().
beginTransaction();
User user = DaoFactory.
getUserDaoImpl().
loadByUsername("super");
List
<Survey
> surveys = DaoFactory.
getSurveyDaoImpl().
loadAllSurveys();
List
<SurveyResponse
> responses = DaoFactory.
getSurveyResponseDaoImpl()
.
loadResponsesByParentStructuralNodeId(surveys.
get(0
).
getStructuralNode().
getId());
if(responses.
size() > 0
)
{
1.5.0/docs/api/java/lang/System.html">System.
out.
println("--->"+responses.
get(0
).
getAnswers().
size());
}
// List ll = DaoFactory.getSurveyQuestionAnswerDaoImpl().teste();
5+0%2Fdocs%2Fapi+List">List ll =
new 1.5.0/docs/api/java/util/ArrayList.html">ArrayList();
1.5.0/docs/api/java/lang/String.html">String[] strs =
new 1.5.0/docs/api/java/lang/String.html">String[ll.
size()];
int[] ints =
new int[ll.
size()];
1.5.0/docs/api/java/lang/String.html">String question =
"";
1.5.0/docs/api/java/util/Iterator.html">Iterator iter = ll.
iterator();
int i =
0;
while (iter.
hasNext())
{
5+0%2Fdocs%2Fapi+Object">Object[] objs =
(5+0%2Fdocs%2Fapi+Object">Object[]) iter.
next();
if(question ==
"")
{
SurveyQuestion quest = DaoFactory.
getSurveyQuestionDaoImpl().
loadById(1.5.0/docs/api/java/lang/Long.html">Long.
parseLong(objs
[0
].
toString()));
question = quest.
getLabelpt();
}
SurveyQuestionCandidateAnswer cand = DaoFactory.
getSurveyQuestionCandidateAnswerDaoImpl().
loadById(1.5.0/docs/api/java/lang/Long.html">Long.
parseLong(objs
[2
].
toString()));
strs
[i
] = cand.
getLabelpt();
ints
[i
] =
1.5.0/docs/api/java/lang/Integer.html">Integer.
parseInt(objs
[3
].
toString());
i++
;
}
createBarChart
(question,
"",
"Número de Respostas", strs, ints
);
// // ----------------- POPULAR
// Survey survey = createSurvey(user);
// List<SurveyStructuralNode> nodes = createStructuralNodes(survey);
// SurveyResponse responses = createSurveyResponses(user, nodes.get(0));
// List<SurveyQuestion> questions = createSurveyQuestions(survey);
// List<SurveyQuestionItem> items = createSurveyQuestionItems(questions);
// List<SurveyQuestionCandidateAnswer> candidates = createSurveyQuestionCandidateAnswers(items);
// List<SurveyQuestionAnswer> answers = createSurveyQuestionAnswers(responses, candidates);
AbstractDao.
getCurrentSession().
getTransaction().
commit();
}
public static void printSurveyStructuralNodesOrganized
(SurveyStructuralNode node
)
{
if(node ==
null) return;
for(SurveyStructuralNode n : node.
getNodes())
{
1.5.0/docs/api/java/lang/System.html">System.
out.
println(+n.
getId()+
" - "+n.
getMsg());
printSurveyStructuralNodesOrganized
(n
);
}
}
public static void createBarChart
(1.5.0/docs/api/java/lang/String.html">String mText,
1.5.0/docs/api/java/lang/String.html">String hText,
1.5.0/docs/api/java/lang/String.html">String vText,
1.5.0/docs/api/java/lang/String.html">String[] series,
int[] numbers
)
{
1.5.0/docs/api/java/io/File.html">File img =
new 1.5.0/docs/api/java/io/File.html">File(Globals.
TMP_DIR +
"/teste.png");
DefaultCategoryDataset dataset =
new DefaultCategoryDataset
();
if(series.
length == numbers.
length)
{
for(int i=
0; i
<series.
length; i++
)
{
dataset.
addValue(numbers
[i
], series
[i
],
"");
}
}
CategoryDataset datasett = dataset
;
JFreeChart chart = ChartFactory.
createBarChart(mText,hText,vText,datasett,PlotOrientation.
VERTICAL,
true,
true,
false);
try {
ChartUtilities.
saveChartAsPNG(img, chart, 400, 300
);
} catch (1.5.0/docs/api/java/io/IOException.html">IOException e
) {
e.
printStackTrace();
}
}
public static void displayObjectList
(5+0%2Fdocs%2Fapi+List">List list
)
{
1.5.0/docs/api/java/util/Iterator.html">Iterator iter = list.
iterator();
if (!iter.
hasNext())
{
1.5.0/docs/api/java/lang/System.html">System.
out.
println("No objects to display.");
return;
}
while (iter.
hasNext())
{
5+0%2Fdocs%2Fapi+Object">Object obj = iter.
next();
1.5.0/docs/api/java/lang/System.html">System.
out.
println(obj
);
}
}
public static void displayObjectListArray
(5+0%2Fdocs%2Fapi+List">List list
)
{
1.5.0/docs/api/java/util/Iterator.html">Iterator iter = list.
iterator();
if (!iter.
hasNext())
{
1.5.0/docs/api/java/lang/System.html">System.
out.
println("No objects to display.");
return;
}
while (iter.
hasNext())
{
5+0%2Fdocs%2Fapi+Object">Object[] objs =
(5+0%2Fdocs%2Fapi+Object">Object[]) iter.
next();
1.5.0/docs/api/java/lang/System.html">System.
out.
print(objs
[0
]);
1.5.0/docs/api/java/lang/System.html">System.
out.
print(" ");
1.5.0/docs/api/java/lang/System.html">System.
out.
print(objs
[1
]);
1.5.0/docs/api/java/lang/System.html">System.
out.
print(" ");
1.5.0/docs/api/java/lang/System.html">System.
out.
println(objs
[2
]);
}
}
}