Skip to content

Instantly share code, notes, and snippets.

@stefanwendelmann
Last active November 17, 2017 15:23
Show Gist options
  • Save stefanwendelmann/7a1f8352900067d5a59826d6ee205044 to your computer and use it in GitHub Desktop.
Save stefanwendelmann/7a1f8352900067d5a59826d6ee205044 to your computer and use it in GitHub Desktop.
/*
*/
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