Skip to content

Commit

Permalink
#2 Zwischenstand, erste Services, erste DTO's
Browse files Browse the repository at this point in the history
  • Loading branch information
StefanSzczesny committed Jun 15, 2016
1 parent 3ea74bd commit a880163
Show file tree
Hide file tree
Showing 11 changed files with 141 additions and 84 deletions.
14 changes: 14 additions & 0 deletions sormas-api/src/de/symeda/sormas/api/caze/CaseDto.java
Original file line number Diff line number Diff line change
@@ -1,12 +1,18 @@
package de.symeda.sormas.api.caze;

import de.symeda.sormas.api.person.PersonDto;

public class CaseDto extends DataTransferObject {

private static final long serialVersionUID = 5007131477733638086L;

public static final String CASE_STATUS = "caseStatus";
public static final String DESCRIPTION = "description";
public static final String PERSON = "personDto";

private CaseStatus caseStatus;
private String description;
private PersonDto personDto;

public CaseStatus getCaseStatus() {
return caseStatus;
Expand All @@ -23,4 +29,12 @@ public String getDescription() {
public void setDescription(String description) {
this.description = description;
}

public PersonDto getPerson() {
return personDto;
}

public void setPersonDto(PersonDto personDto) {
this.personDto = personDto;
}
}
4 changes: 4 additions & 0 deletions sormas-api/src/de/symeda/sormas/api/caze/CaseFacade.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,8 @@ public interface CaseFacade {

public abstract CaseDto getByUuid(String uuid);

public abstract CaseDto saveCase(CaseDto dto);

public abstract void createDemo();

}
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToOne;
import javax.persistence.Temporal;
Expand All @@ -19,7 +20,7 @@
import de.symeda.sormas.backend.person.Person;
import de.symeda.sormas.backend.user.User;

@Entity
@Entity(name="caze")
public class Case extends AbstractDomainObject {

private static final long serialVersionUID = -2697795184663562129L;
Expand All @@ -46,8 +47,8 @@ public class Case extends AbstractDomainObject {
private User surveillanceOfficer;
private User surveillanceSupervisor;

@OneToOne(cascade = CascadeType.ALL, mappedBy=Case.PERSON)
@Column(nullable=false)
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(nullable=false)
public Person getPerson() {
return person;
}
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,10 @@
import java.util.Random;

import de.symeda.sormas.api.caze.CaseDto;
import de.symeda.sormas.api.person.PersonDto;

public class MockDataGenerator {
private static int nextCaseId = 1;
private static final Random random = new Random(1);

private static String[] word1 = new String[] { "The art of", "Mastering",
Expand All @@ -27,10 +28,21 @@ public class MockDataGenerator {
"feeling down", "debugging", "running barefoot",
"speaking to a big audience", "creating software", "giant needles",
"elephants", "keeping your wife happy" };


private static String[] firstnames = new String[] { "Nala",
"Amara", "Ayana", "Nia", "Imani", "Khari",
"Adisa", "Akachi", "Jaheem", "Amare", "Adebowale",
"Jabari", "Abioye", "Ebele", "Sanaa", "Afia"};
private static String[] lastnames = new String[] {
"Azikiwe","Chahine", "Bello", "Cisse", "Akintola", "Okotie-Eboh", "Nzeogwu", "Onwuatuegwu", "Okafor", "Contee", "Okeke", "Conteh", "Okoye",
"Diallo", "Obasanjo", "Babangida", "Buhari", "Dimka", "Toure", "Diya", "Odili", "Ibori", "Igbinedion", "Alamieyeseigha", "Asari-Dokubo",
"Jalloh", "Anikulapo-Kuti","Iwu", "Anenih", "Mensah", "Biobaku","Tinibu", "Sesay", "Akinyemi", "Akiloye", "Adeyemi",
"Adesida", "Omehia", "Sekibo", "Amaechi", "Bankole", "Nnamani", "Turay", "Okadigbo", "Yeboah", "Ojukwu"};

public static List<CaseDto> createCases() {
List<CaseDto> cases = new ArrayList<CaseDto>();
for (int i = 0; i < 10; i++) {
for (int i = 0; i < 1; i++) {
CaseDto p = createCase();
cases.add(p);
}
Expand All @@ -44,8 +56,26 @@ private static CaseDto createCase() {
return c;
}

public static PersonDto createPerson() {
PersonDto personDto = new PersonDto();
personDto.setUuid(java.util.UUID.randomUUID().toString());
personDto.setFirstName(generateFirstName());
personDto.setLastName(generateLastName());
return personDto;
}


private static String generateName() {
return word1[random.nextInt(word1.length)] + " "
+ word2[random.nextInt(word2.length)];
}}
}

private static String generateFirstName() {
return firstnames[random.nextInt(firstnames.length)];
}
private static String generateLastName() {
return lastnames[random.nextInt(lastnames.length)];
}

}

13 changes: 10 additions & 3 deletions sormas-backend/src/main/resources/META-INF/persistence.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,19 @@
<persistence-unit name="SormasPU" transaction-type="JTA">
<jta-data-source>jdbc/sormasDataPool</jta-data-source>

<mapping-file>META-INF/listener.xml</mapping-file>
<!-- <mapping-file>META-INF/listener.xml</mapping-file> -->

<class>de.symeda.sormas.api.common.AbstractDomainObject</class>
<class>de.symeda.sormas.backend.common.AbstractDomainObject</class>
<class>de.symeda.sormas.backend.caze.Case</class>
<class>de.symeda.sormas.backend.person.Person</class>
<class>de.symeda.sormas.backend.location.Location</class>
<class>de.symeda.sormas.backend.user.User</class>
<class>de.symeda.sormas.backend.region.Region</class>
<class>de.symeda.sormas.backend.region.District</class>
<class>de.symeda.sormas.backend.region.Community</class>


<exclude-unlisted-classes>false</exclude-unlisted-classes>
<exclude-unlisted-classes>true</exclude-unlisted-classes>

<shared-cache-mode>ENABLE_SELECTIVE</shared-cache-mode>
<validation-mode>CALLBACK</validation-mode>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ public Menu(Navigator navigator) {
top.setDefaultComponentAlignment(Alignment.MIDDLE_LEFT);
top.addStyleName(ValoTheme.MENU_TITLE);
top.setSpacing(true);
Label title = new Label("My CRUD");
Label title = new Label("SORMAS");
title.addStyleName(ValoTheme.LABEL_H3);
title.setSizeUndefined();
Image image = new Image(null, new ThemeResource("img/table-logo.png"));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,8 @@
*/
public class CaseController implements Serializable {

private CasesView view;
private static final long serialVersionUID = 1L;
private CasesView view;

public CaseController(CasesView simpleCrudView) {
view = simpleCrudView;
Expand All @@ -32,7 +33,10 @@ public void init() {
if (!SurveillanceUI.get().getAccessControl().isUserInRole("admin")) {
view.setNewCaseEnabled(false);
}


// Create demo-content
FacadeProvider.getCaseFacade().createDemo();

view.show(FacadeProvider.getCaseFacade().getAllCases());
}

Expand All @@ -45,12 +49,12 @@ public void cancelCase() {
/**
* Update the fragment without causing navigator to change view
*/
private void setFragmentParameter(String productId) {
private void setFragmentParameter(String caseUuid) {
String fragmentParameter;
if (productId == null || productId.isEmpty()) {
if (caseUuid == null || caseUuid.isEmpty()) {
fragmentParameter = "";
} else {
fragmentParameter = productId;
fragmentParameter = caseUuid;
}

Page page = SurveillanceUI.get().getPage();
Expand All @@ -66,15 +70,15 @@ public void enter(String uuidOrNew) {
// Ensure this is selected even if coming directly here from
// login
try {
CaseDto caze = findCaze(uuidOrNew);
CaseDto caze = findCase(uuidOrNew);
view.selectRow(caze);
} catch (NumberFormatException e) {
}
}
}
}

private CaseDto findCaze(String uuid) {
private CaseDto findCase(String uuid) {
return FacadeProvider.getCaseFacade().getByUuid(uuid);
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package de.symeda.sormas.ui.surveillance.caze;

import com.vaadin.data.Property.ValueChangeEvent;
import com.vaadin.data.Property.ValueChangeListener;
import com.vaadin.data.fieldgroup.BeanFieldGroup;
import com.vaadin.data.fieldgroup.FieldGroup.CommitEvent;
Expand All @@ -26,12 +25,12 @@
* side of the view or filling the whole screen - see the theme for the related
* CSS rules.
*/
public class CaseForm extends CssLayout {
public class CaseForm extends CustomLayout {

private CaseController viewLogic;
private static final long serialVersionUID = 8049619475023157401L;
private CaseController viewLogic;
private BeanFieldGroup<CaseDto> fieldGroup;

private final CustomLayout layout;
private final TextField id;
private final NativeSelect caseStatus;
private final TextArea description;
Expand All @@ -44,30 +43,26 @@ public class CaseForm extends CssLayout {

public CaseForm(CaseController caseController) {
super();
layout = new CustomLayout((String)null);
layout.setTemplateContents(HTML_LAYOUT);
setSizeFull();
setTemplateContents(HTML_LAYOUT);

viewLogic = caseController;

fieldGroup = new BeanFieldGroup<CaseDto>(CaseDto.class);

id = fieldGroup.buildAndBind("ID", CaseDto.UUID, TextField.class);
id.setReadOnly(true);
layout.addComponent(id, CaseDto.UUID);
addComponent(id, CaseDto.UUID);

caseStatus = fieldGroup.buildAndBind("Status", CaseDto.CASE_STATUS, NativeSelect.class);
layout.addComponent(caseStatus, CaseDto.CASE_STATUS);
addComponent(caseStatus, CaseDto.CASE_STATUS);

description = fieldGroup.buildAndBind("Description", CaseDto.DESCRIPTION, TextArea.class);
layout.addComponent(description, CaseDto.DESCRIPTION);
addComponent(description, CaseDto.DESCRIPTION);

// perform validation and enable/disable buttons while editing
ValueChangeListener valueListener = new ValueChangeListener() {
@Override
public void valueChange(ValueChangeEvent event) {
formHasChanged();
}
};
ValueChangeListener valueListener = e -> formHasChanged();

for (Field f : fieldGroup.getFields()) {
f.addValueChangeListener(valueListener);
}
Expand All @@ -85,6 +80,7 @@ public void postCommit(CommitEvent commitEvent) throws CommitException {
}
});


// save.addClickListener(new ClickListener() {
// @Override
// public void buttonClick(ClickEvent event) {
Expand Down Expand Up @@ -127,9 +123,12 @@ public void editCase(CaseDto caze) {

// Scroll to the top
// As this is not a Panel, using JavaScript
String scrollScript = "window.document.getElementById('" + getId()
+ "').scrollTop = 0;";
Page.getCurrent().getJavaScript().execute(scrollScript);
String id2 = getId();
if (id2 != null) {
String scrollScript = "window.document.getElementById('" + id2
+ "').scrollTop = 0;";
Page.getCurrent().getJavaScript().execute(scrollScript);
}
}

private void formHasChanged() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,12 @@
import com.vaadin.ui.Grid;

import de.symeda.sormas.api.caze.CaseDto;
import de.symeda.sormas.ui.utils.CaseHelper;

public class CaseGrid extends Grid {

public CaseGrid() {
private static final long serialVersionUID = -3413165328323165362L;

public CaseGrid() {
setSizeFull();

setSelectionMode(SelectionMode.SINGLE);
Expand All @@ -25,6 +26,8 @@ public CaseGrid() {
setContainerDataSource(container);
setColumnOrder(CaseDto.UUID, CaseDto.CASE_STATUS, CaseDto.DESCRIPTION);
getColumn(CaseDto.UUID).setConverter(new Converter<String, String>() {

private static final long serialVersionUID = -5274112323551652930L;

@Override
public String convertToModel(String value, Class<? extends String> targetType, Locale locale)
Expand Down Expand Up @@ -72,7 +75,8 @@ public void setFilter(String filterString) {

}

private BeanItemContainer<CaseDto> getContainer() {
@SuppressWarnings("unchecked")
private BeanItemContainer<CaseDto> getContainer() {
return (BeanItemContainer<CaseDto>) super.getContainerDataSource();
}

Expand All @@ -92,7 +96,8 @@ public void refresh(CaseDto caze) {
BeanItem<CaseDto> item = getContainer().getItem(caze);
if (item != null) {
// Updated product
MethodProperty p = (MethodProperty) item.getItemProperty(CaseDto.UUID);
@SuppressWarnings("rawtypes")
MethodProperty p = (MethodProperty) item.getItemProperty(CaseDto.UUID);
p.fireValueChange();
} else {
// New product
Expand Down
Loading

0 comments on commit a880163

Please sign in to comment.