Last active
November 17, 2017 15:23
-
-
Save stefanwendelmann/7a1f8352900067d5a59826d6ee205044 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
*/ | |
package de.itout.quoloco.web.pages.empfangseinheittypen; | |
import de.gsq.system.util.*; | |
import de.itout.quoloco.entities.*; | |
import de.itout.quoloco.web.util.*; | |
import de.itout.web.*; | |
import de.itout.web.gui.*; | |
import java.io.*; | |
import java.util.*; | |
import java.util.logging.*; | |
import javax.annotation.*; | |
import javax.faces.model.*; | |
import javax.faces.view.*; | |
import javax.inject.*; | |
import javax.persistence.*; | |
import javax.transaction.*; | |
/** | |
* Mit Empfangseinheittypen arbeiten - Worker. | |
* | |
* @author lohuis | |
*/ | |
@Named | |
@ViewScoped | |
@Transactional | |
public class EmpfangseinheittypenMaint extends MaintPage implements Serializable | |
{ | |
@PersistenceContext(name = "QuoLoco") | |
private EntityManager em; | |
@Inject | |
EmpfangseinheittypenMaintRequest req; | |
@Inject | |
FeldartenUtil feldartenUtil; | |
private int vdId; | |
private String vdBezeichnung; | |
private String vdKlasse; | |
private boolean vdAufKarteZeichnen; | |
private ArrayList<EmpfangseinheittypenparameterTableBean> arEmpfangseinheittypenparameter = new ArrayList<>(); | |
private ArrayList<EmpfangseinheittypenparameterTableBean> arEmpfangseinheittypenparameterToDelete = new ArrayList<>(); | |
private ArrayList<SelectItem> arFeldarten; | |
@PostConstruct | |
public void init() | |
{ | |
loadComponentProperties(); | |
arFeldarten = feldartenUtil.load(true); | |
moveToOutput(); | |
} | |
/** | |
* Laden der Komponenteneinstellungen. | |
*/ | |
@Override | |
public void loadComponentProperties() | |
{ | |
addMaxLengthComponent("vdBezeichnung", 100); | |
addMaxLengthComponent("vdKlasse", 255); | |
addMaxLengthComponent("sfParameter", 100); | |
addMaxLengthComponent("sfBemerkung", 255); | |
} | |
@Override | |
public void moveToOutput() | |
{ | |
if (req != null) | |
{ | |
retrieveMaintRequestValues(req); | |
setVdId(req.getEmpfangseinheittypID()); | |
Empfangseinheittypen empfangseinheittyp = em.find(Empfangseinheittypen.class, vdId); | |
if (empfangseinheittyp != null) | |
{ | |
vdBezeichnung = empfangseinheittyp.getBezeichnung(); | |
vdKlasse = empfangseinheittyp.getKlasse(); | |
vdAufKarteZeichnen = empfangseinheittyp.getAufKarteZeichnen(); | |
// Empfangseinheittypenparameter | |
moveToOutputEmpfangseinheittypenparameter(); | |
validate(); | |
} | |
else | |
{ | |
if (req.getCurrentAction() == MaintRequest.Action.Inquiry | |
|| req.getCurrentAction() == MaintRequest.Action.Change | |
|| req.getCurrentAction() == MaintRequest.Action.Delete) | |
{ | |
WebHelper.addErrorMessage("Datensatz nicht gefunden"); | |
} | |
} | |
} | |
} | |
public void scrubKey(Empfangseinheittypen aEmpfangseinheittypen) | |
{ | |
aEmpfangseinheittypen.setId(vdId); | |
} | |
public void scrubData(Empfangseinheittypen aEmpfangseinheittypen) | |
{ | |
aEmpfangseinheittypen.setBezeichnung(vdBezeichnung); | |
aEmpfangseinheittypen.setKlasse(vdKlasse); | |
aEmpfangseinheittypen.setAufKarteZeichnen(vdAufKarteZeichnen); | |
} | |
/** | |
* Empfangseinheittypenparameter ausgeben. | |
*/ | |
public void moveToOutputEmpfangseinheittypenparameter() | |
{ | |
arEmpfangseinheittypenparameter.clear(); | |
arEmpfangseinheittypenparameterToDelete.clear(); | |
Query q = em.createQuery("select e from Empfangseinheittypenparameter as e where e.empfangseinheittypenparameterPK.empfangseinheittypId = :empfangseinheittypId"); | |
q.setParameter("empfangseinheittypId", vdId); | |
List<Empfangseinheittypenparameter> empfangseinheittypenparameter = q.getResultList(); | |
for (Empfangseinheittypenparameter parameter : empfangseinheittypenparameter) | |
{ | |
arEmpfangseinheittypenparameter.add(new EmpfangseinheittypenparameterTableBean(parameter)); | |
} | |
} | |
/** | |
* Aktion Empfangseinheittypenparameter hinzufügen. | |
* | |
* @return Pagenavigation | |
*/ | |
public String bnAddEmpfangseinheittypenparameter() | |
{ | |
arEmpfangseinheittypenparameter.add(new EmpfangseinheittypenparameterTableBean(vdId)); | |
return null; | |
} | |
/** | |
* Aktion Empfangseinheittypenparameter löschen. | |
* | |
* @return Pagenavigation | |
*/ | |
public String bnDeleteEmpfangseinheittypenparameter() | |
{ | |
ArrayList<EmpfangseinheittypenparameterTableBean> toDelete = new ArrayList<>(); | |
for (EmpfangseinheittypenparameterTableBean empfangseinheittypenparameter : arEmpfangseinheittypenparameter) | |
{ | |
if (empfangseinheittypenparameter.isSelected()) | |
{ | |
arEmpfangseinheittypenparameterToDelete.add(empfangseinheittypenparameter); | |
toDelete.add(empfangseinheittypenparameter); | |
} | |
} | |
arEmpfangseinheittypenparameter.removeAll(toDelete); | |
return null; | |
} | |
/** | |
* Hier wird die Validierung durchgeführt. | |
* | |
* @return true = keine Fehler | |
*/ | |
@Override | |
public boolean validate() | |
{ | |
boolean result = true; | |
clearErrorComponents(); | |
if (getCurrentAction() == MaintRequest.Action.Add | |
|| getCurrentAction() == MaintRequest.Action.Change) | |
{ | |
if (vdBezeichnung.isEmpty()) | |
{ | |
WebHelper.addErrorMessage("Feldfüllung erforderlich"); | |
addError("vdName"); | |
result = false; | |
} | |
} | |
return result; | |
} | |
/** | |
* Hiermit wird die Datensatzaktualisierung durchgeführt. | |
* | |
* @return Pagenavigation | |
*/ | |
@Override | |
public String doChange() | |
{ | |
try | |
{ | |
Empfangseinheittypen empfangseinheittyp = em.find(Empfangseinheittypen.class, vdId); | |
if (empfangseinheittyp != null) | |
{ | |
scrubData(empfangseinheittyp); | |
em.persist(empfangseinheittyp); | |
// Empfangseinheittypenparameter aktualisieren | |
updateEmpfangseinheittypenparameter(); | |
} | |
else | |
{ | |
WebHelper.addErrorMessage("Fehler bei der Aktualisierung"); | |
return null; | |
} | |
} | |
catch (PersistenceException e) | |
{ | |
Logger.getLogger(EmpfangseinheittypenMaint.class.getName()).log(Level.SEVERE, "Fehler bei der Aktualisierung", e); | |
} | |
return getReturnPage(); | |
} | |
/** | |
* Hiermit wird die Datensatzerstellung durchgeführt. | |
* | |
* @return Pagenavigation | |
*/ | |
@Override | |
public String doAdd() | |
{ | |
try | |
{ | |
Empfangseinheittypen empfangseinheittyp = em.find(Empfangseinheittypen.class, vdId); | |
if (empfangseinheittyp == null) | |
{ | |
empfangseinheittyp = new Empfangseinheittypen(); | |
scrubData(empfangseinheittyp); | |
em.persist(empfangseinheittyp); | |
// vergebene ID festhalten | |
vdId = empfangseinheittyp.getId(); | |
// Empfangseinheittypenparameter aktualisieren | |
updateEmpfangseinheittypenparameter(); | |
} | |
else | |
{ | |
WebHelper.addErrorMessage("Fehler bei der Neuanlage"); | |
return null; | |
} | |
} | |
catch (PersistenceException e) | |
{ | |
Logger.getLogger(EmpfangseinheittypenMaint.class.getName()).log(Level.SEVERE, "Fehler bei der Neuanlage", e); | |
} | |
return getReturnPage(); | |
} | |
/** | |
* Hiermit wird die Datensatzlöschung durchgeführt. | |
* | |
* @return Pagenavigation | |
*/ | |
@Override | |
public String doDelete() | |
{ | |
try | |
{ | |
Empfangseinheittypen empfangseinheittyp = em.find(Empfangseinheittypen.class, vdId); | |
if (empfangseinheittyp != null) | |
{ | |
em.remove(empfangseinheittyp); | |
// Empfangseinheittypenparameter löschen | |
deleteEmpfangseinheittypenparameter(); | |
} | |
else | |
{ | |
WebHelper.addErrorMessage("Fehler bei der Löschung"); | |
return null; | |
} | |
} | |
catch (PersistenceException e) | |
{ | |
Logger.getLogger(EmpfangseinheittypenMaint.class.getName()).log(Level.SEVERE, "Fehler bei der Löschung", e); | |
} | |
return getReturnPage(); | |
} | |
/** | |
* Aktualisierung der Empfangseinheittypenparameter. | |
*/ | |
public void updateEmpfangseinheittypenparameter() | |
{ | |
// erst alle gelöschten Einträge entfernen | |
for (EmpfangseinheittypenparameterTableBean empfangseinheittypenparameter : arEmpfangseinheittypenparameterToDelete) | |
{ | |
// übergeordnete Id nachtragen | |
empfangseinheittypenparameter.setEmpfangseinheittypID(vdId); | |
EmpfangseinheittypenparameterPK key = new EmpfangseinheittypenparameterPK(); | |
empfangseinheittypenparameter.scrubOrigKey(key); | |
Empfangseinheittypenparameter rec = em.find(Empfangseinheittypenparameter.class, key); | |
if (rec != null) | |
{ | |
em.remove(rec); | |
} | |
} | |
arEmpfangseinheittypenparameterToDelete.clear(); | |
// anschließend die bestehenden aktualisieren/hinzufügen | |
for (EmpfangseinheittypenparameterTableBean empfangseinheittypenparameter : arEmpfangseinheittypenparameter) | |
{ | |
// übergeordnete Id nachtragen | |
empfangseinheittypenparameter.setEmpfangseinheittypID(vdId); | |
// wenn Zeile leer, dann alten Datensatz löschen | |
if ((empfangseinheittypenparameter.isEmpty() || empfangseinheittypenparameter.isChanged()) && !empfangseinheittypenparameter.isNew()) | |
{ | |
EmpfangseinheittypenparameterPK key = new EmpfangseinheittypenparameterPK(); | |
empfangseinheittypenparameter.scrubOrigKey(key); | |
Empfangseinheittypenparameter rec = em.find(Empfangseinheittypenparameter.class, key); | |
if (rec != null) | |
{ | |
em.remove(rec); | |
} | |
} | |
// Datensatz aktualisieren bzw. anlegen | |
if (!empfangseinheittypenparameter.isEmpty()) | |
{ | |
if (QString.isNotEmpty(empfangseinheittypenparameter.getParameter())) | |
{ | |
EmpfangseinheittypenparameterPK key = new EmpfangseinheittypenparameterPK(); | |
empfangseinheittypenparameter.scrubKey(key); | |
Empfangseinheittypenparameter rec = em.find(Empfangseinheittypenparameter.class, key); | |
if (rec == null) | |
{ | |
rec = new Empfangseinheittypenparameter(); | |
empfangseinheittypenparameter.scrubKey(rec); | |
} | |
empfangseinheittypenparameter.scrubData(rec); | |
em.persist(rec); | |
} | |
} | |
} | |
} | |
/** | |
* Löschung der Empfangseinheittypenparameter. | |
*/ | |
public void deleteEmpfangseinheittypenparameter() | |
{ | |
em.createQuery("delete from Empfangseinheittypenparameter as e where e.empfangseinheittypenparameterPK.empfangseinheittypId = :empfangseinheittypId") | |
.setParameter("empfangseinheittypId", vdId).executeUpdate(); | |
} | |
public int getVdId() | |
{ | |
return vdId; | |
} | |
public void setVdId(int vdId) | |
{ | |
this.vdId = vdId; | |
} | |
public String getVdBezeichnung() | |
{ | |
return vdBezeichnung; | |
} | |
public void setVdBezeichnung(String vdBezeichnung) | |
{ | |
this.vdBezeichnung = vdBezeichnung; | |
} | |
public String getVdKlasse() | |
{ | |
return vdKlasse; | |
} | |
public void setVdKlasse(String vdKlasse) | |
{ | |
this.vdKlasse = vdKlasse; | |
} | |
public boolean isVdAufKarteZeichnen() | |
{ | |
return vdAufKarteZeichnen; | |
} | |
public void setVdAufKarteZeichnen(boolean vdAufKarteZeichnen) | |
{ | |
this.vdAufKarteZeichnen = vdAufKarteZeichnen; | |
} | |
public ArrayList<EmpfangseinheittypenparameterTableBean> getArEmpfangseinheittypenparameter() | |
{ | |
return arEmpfangseinheittypenparameter; | |
} | |
public ArrayList<SelectItem> getArFeldarten() | |
{ | |
return arFeldarten; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment