Integradas sugerencias de la vista recibidas de Marcos, se ha tenido que

integrar con el uso de las firmas de EJB de MagicDrw, además de eliminar
el uso de propiedades sueltas en pro del objeto seleccionado, y también
se ha hecho algún cambio extra para que la botonera de la interfaz quede
más integrada.
This commit is contained in:
Roberto Orden Erena
2019-12-26 21:10:40 +01:00
parent 85f6cf9644
commit 6fd9e7ca6c
2 changed files with 116 additions and 144 deletions

View File

@@ -4,6 +4,7 @@ import java.io.Serializable;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.faces.application.FacesMessage;
import javax.faces.view.ViewScoped;
import javax.inject.Named;
@@ -23,8 +24,10 @@ public class QuestionsMBean extends ManagedBeanBase implements Serializable {
private int userID;
private UserType userType;
private List<QuestionTO> allQuestions;
protected QuestionTO selected;
private List<QuestionTO> pendingQuestions;
private Integer id;
private QuestionTO selected;
private boolean addNewMode;
public QuestionsMBean() {
}
@@ -34,155 +37,96 @@ public class QuestionsMBean extends ManagedBeanBase implements Serializable {
// Inicialización de variables y propiedades van aquí.
this.userType = SessionUtils.getUserType();
this.userID = Integer.valueOf(SessionUtils.getUserId());
this.addNewMode = false;
this.selected = null;
this.loadQuestions();
}
private void printSelected(String asd) {
if(asd!=null) {
asd = "'" + asd + "'";
}else {
asd = "";
}
System.out.println("Selected " + asd + ": ");
System.out.println(this.selected);
}
public List<QuestionTO> getPendingQuestions() {
return allQuestions;
return pendingQuestions;
}
public void setPendingQuestions(List<QuestionTO> value) {
this.allQuestions = value;
this.pendingQuestions = value;
}
/**
* Cargará las preguntas enviadas al médico o escritas por el paciente, esto irá
* en función del tipo de usuario en sesión
*/
private void loadQuestions() {
this.printSelected("");
if (userType == UserType.FAMILY_DOCTOR) {
if (this.userType == UserType.FAMILY_DOCTOR) {
// Listar las preguntas destinadas a él
// El método disponible del API básico es referente al doctor
this.allQuestions = getRemoteManagerMedicalTest().listAllPendingQuestions(userID);
} else if (userType == UserType.PATIENT) {
this.pendingQuestions = getRemoteManagerMedicalTest().listAllPendingQuestions(userID);
} else if (this.userType == UserType.PATIENT) {
// Listar las preguntas realiadas por él
// Para reutilizar la misma view, necesitaremos nuevos métodos para el API de
// cara a recoger sus preguntas realizadas.
this.allQuestions = getRemoteManagerMedicalTest().listAllMyQuestions(userID);
this.pendingQuestions = getRemoteManagerMedicalTest().listAllMyQuestions(userID);
}
}
public boolean getShowCreate() {
return userType == UserType.PATIENT;
}
public boolean isShowCreate() {
return this.getShowCreate();
}
public void setShowCreate() {
//
}
public boolean getDisabledMessage() {
if (this.selected != null) {
return this.selected.getStatus() != QuestionStatus.NEW;
}
return false;
}
public boolean isDisabledMessage() {
return this.getDisabledMessage();
}
public void setDisabledMessage(boolean bval) {
// Nothing to do
}
public void onSelect(SelectEvent event) {
this.printSelected("onSelect antes");
this.addNewMode = false;
this.selected = (QuestionTO) event.getObject();
this.printSelected("onSelect despues");
}
public void onUnSelect(SelectEvent event) {
this.selected = null;
}
public void setSelected(QuestionTO selected) {
this.printSelected("setSelected antes");
this.selected = selected;
this.printSelected("setSelected despues");
}
public QuestionTO getSelected() {
return this.selected;
}
public void answerQuestion() {
// Es un selected recuperado de la lista
public void save() {
getRemoteManagerMedicalTest().answerQuestion(this.selected.getId(), this.selected.getResponse());
this.init();
this.loadQuestions();
this.addFacesMessage(FacesMessage.SEVERITY_INFO, "Datos guardados", "La respuesta se registrado correctamente en el sistema.");
this.selected = null;
}
public void askQuestion() {
// Es un question nuevo
QuestionTO q = this.selected;
getRemoteManagerMedicalTest().askQuestion(q.getPatient().getId(), q.getTitle(), q.getMessage());
this.init();
}
public void create() {
this.printSelected("create start");
String template = "";
this.addNewMode = true;
this.selected = new QuestionTO();
this.selected.setId(-1);
this.selected.setTitle(template);
this.selected.setMessage(template);
this.selected.setResponse(template);
this.selected.setStatus(QuestionStatus.NEW);
this.selected.getPatient().setId(Integer.parseInt(SessionUtils.getloggedOnUser().getId()));
this.selected.getPatient().setName(SessionUtils.getloggedOnUser().getName());
this.printSelected("create end");
this.selected.setTitle("");
this.selected.setMessage("");
}
public boolean getShowPanelDetail() {
return this.selected != null;
public void addNewQuestion() {
getRemoteManagerMedicalTest().askQuestion(userID, this.selected.getTitle(), this.selected.getMessage());
this.loadQuestions();
this.addFacesMessage(FacesMessage.SEVERITY_INFO, "Datos guardados", "La pregunta se registrado correctamente en el sistema.");
}
public boolean isShowPanelDetail() {
return this.getShowPanelDetail();
return this.selected != null && this.addNewMode == false;
}
public void setShowPanelDetail() {
//
public boolean isPatient() {
return (this.userType == UserType.PATIENT);
}
public boolean getAskButton() {
return this.selected == null ? (userType == UserType.PATIENT)
: (userType == UserType.PATIENT && this.selected.getStatus() == QuestionStatus.NEW);
public boolean isFamilyDoctor() {
return (this.userType == UserType.FAMILY_DOCTOR);
}
public boolean isAddNewMode() {
return addNewMode;
}
public boolean isRespuestaEditable() {
return (this.userType == UserType.FAMILY_DOCTOR && this.selected != null && this.selected.getStatus() == QuestionStatus.PENDING);
}
public boolean isAskButton() {
return this.getAskButton();
public void setAddNewMode(boolean addNewMode) {
this.addNewMode = addNewMode;
}
public void setAskButton() {
}
public boolean getAnswerButton() {
return this.selected == null ? (userType == UserType.FAMILY_DOCTOR)
: (userType == UserType.FAMILY_DOCTOR && this.selected.getStatus() == QuestionStatus.PENDING);
}
public boolean isAnswerButton() {
return this.getAnswerButton();
}
public void setAnswerButton() {
}
}