Advertisement
Guest User

Untitled

a guest
Feb 19th, 2018
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.83 KB | None | 0 0
  1. package model;
  2.  
  3. import java.io.Serializable;
  4. import java.util.ArrayList;
  5. import java.util.List;
  6.  
  7. public class Schueler implements Serializable{
  8. private String nr;
  9. private String nachname;
  10. private String vorname;
  11. private char geschlecht;
  12.  
  13. private static final List<Schueler> klasse;
  14.  
  15. static {
  16. klasse = new ArrayList<>();
  17.  
  18. klasse.add(new Schueler(1, "Nachname1", "Vorname1", 'M'));
  19. klasse.add(new Schueler(2, "Nachname2", "Vorname2", 'W'));
  20. klasse.add(new Schueler(3, "Nachname3", "Vorname3", 'M'));
  21. klasse.add(new Schueler(4, "Nachname4", "Vorname4", 'M'));
  22. klasse.add(new Schueler(5, "Nachname5", "Vorname5", 'M'));
  23. klasse.add(new Schueler(6, "Nachname6", "Vorname6", 'M'));
  24. }
  25.  
  26. public Schueler() {
  27. this(0, "Name", "Name", 'M');
  28. }
  29.  
  30. private Schueler(int nr, String nachname, String vorname, char geschlecht) {
  31. this.nr = nr + "";
  32. this.nachname = nachname;
  33. this.vorname = vorname;
  34. this.geschlecht = geschlecht;
  35. }
  36.  
  37. public static List<Schueler> getKlasse() {
  38. return klasse;
  39. }
  40.  
  41. public String getNachname() {
  42. return nachname;
  43. }
  44.  
  45. public String getNr() {
  46. return nr;
  47. }
  48.  
  49. public int getNrInt(){
  50. return Integer.parseInt(nr);
  51. }
  52. public String getVorname() {
  53. return vorname;
  54. }
  55.  
  56. public char getGeschlecht() {
  57. return geschlecht;
  58. }
  59.  
  60. public void setNr(String nr) {
  61. this.nr = nr;
  62. }
  63.  
  64. public void setGeschlecht(char geschlecht) {
  65. this.geschlecht = geschlecht;
  66. }
  67.  
  68. public void setNachname(String nachname) {
  69. this.nachname = nachname;
  70. }
  71.  
  72. public void setVorname(String vorname) {
  73. this.vorname = vorname;
  74. }
  75.  
  76. @Override
  77. public String toString() {
  78. return vorname + " " + nachname;
  79. }
  80.  
  81.  
  82. }
  83.  
  84. package controller;
  85.  
  86. import java.io.Serializable;
  87. import java.util.ArrayList;
  88. import java.util.List;
  89. import javax.inject.Named;
  90. import javax.enterprise.context.SessionScoped;
  91. import javax.faces.application.FacesMessage;
  92. import javax.faces.bean.ManagedBean;
  93. import javax.faces.context.FacesContext;
  94. import model.Schueler;
  95.  
  96. @Named(value = "schuelerCon")
  97. @ManagedBean
  98. @SessionScoped
  99. public class SchuelerController implements Serializable {
  100.  
  101. List<Schueler> klasse = new ArrayList<>();
  102. List<Schueler> filteredKlasse;
  103. List<Schueler> selectedKlasse = new ArrayList<>();
  104. String username;
  105. String password;
  106. boolean loggedIn = false;
  107. Schueler newSchueler = new Schueler();
  108. boolean weiblich;
  109.  
  110. public List<Schueler> getFilteredKlasse() {
  111. return filteredKlasse;
  112. }
  113.  
  114. public void setFilteredKlasse(List<Schueler> filteredKlasse) {
  115. this.filteredKlasse = filteredKlasse;
  116. }
  117.  
  118. public SchuelerController() {
  119. }
  120.  
  121. public List<Schueler> getKlasse() {
  122. return klasse;
  123. }
  124.  
  125. public void setKlasse(List<Schueler> klasse) {
  126. this.klasse = klasse;
  127. }
  128.  
  129. public List<Schueler> getSelectedKlasse() {
  130. return selectedKlasse;
  131. }
  132.  
  133. public void setSelectedKlasse(List<Schueler> selectedKlasse) {
  134. this.selectedKlasse = selectedKlasse;
  135. }
  136.  
  137. public void loadKlasse() {
  138. klasse = Schueler.getKlasse();
  139. filteredKlasse = klasse;
  140. }
  141.  
  142. public void login() {
  143. FacesMessage message = null;
  144.  
  145. if (username != null && username.equals("admin") && password != null && password.equals("pwd01")) {
  146. loggedIn = true;
  147. loadKlasse();
  148. message = new FacesMessage(FacesMessage.SEVERITY_INFO, "Welcome", username);
  149. } else {
  150. loggedIn = false;
  151. message = new FacesMessage(FacesMessage.SEVERITY_WARN, "Loggin Error", "Invalid credentials");
  152. }
  153.  
  154. FacesContext.getCurrentInstance().addMessage(null, message);
  155. }
  156.  
  157. public String getUsername() {
  158. return username;
  159. }
  160.  
  161. public void setUsername(String username) {
  162. this.username = username;
  163. }
  164.  
  165. public String getPassword() {
  166. return password;
  167. }
  168.  
  169. public void setPassword(String password) {
  170. this.password = password;
  171. }
  172.  
  173. public boolean isLoggedIn() {
  174. return loggedIn;
  175. }
  176.  
  177. public void setLoggedIn(boolean loggedIn) {
  178. this.loggedIn = loggedIn;
  179. }
  180.  
  181. public void addSchueler() {
  182. if (weiblich) {
  183. newSchueler.setGeschlecht('W');
  184. } else {
  185. newSchueler.setGeschlecht('M');
  186. }
  187. String nr = "" + (klasse.stream().max((x1, x2) -> x1.getNrInt() - x2.getNrInt()).get().getNrInt() + 1);
  188. newSchueler.setNr(nr);
  189. klasse.add(newSchueler);
  190. FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, "Saved", "Benutzer added!: " + newSchueler);
  191. FacesContext.getCurrentInstance().addMessage(null, message);
  192. newSchueler = new Schueler();
  193. }
  194.  
  195. public void deleteSchueler() {
  196. if (!loggedIn) {
  197. System.out.println("Not logged in");
  198. return;
  199. }
  200. if (!klasse.isEmpty()) {
  201. System.out.println("remove Klasse");
  202. klasse.removeAll(selectedKlasse);
  203. }
  204. }
  205.  
  206. public Schueler getNewSchueler() {
  207. return newSchueler;
  208. }
  209.  
  210. public void setNewSchueler(Schueler newSchueler) {
  211. this.newSchueler = newSchueler;
  212. }
  213.  
  214. public boolean isWeiblich() {
  215. return weiblich;
  216. }
  217.  
  218. public void setWeiblich(boolean weiblich) {
  219. this.weiblich = weiblich;
  220. }
  221.  
  222. }
  223.  
  224. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  225. <html xmlns="http://www.w3.org/1999/xhtml"
  226. xmlns:h="http://java.sun.com/jsf/html"
  227. xmlns:f="http://java.sun.com/jsf/core"
  228. xmlns:p="http://primefaces.org/ui">
  229.  
  230. <h:head>
  231. <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
  232. <title>PrimeFaces Dialog</title>
  233. <style>
  234. body{
  235. background-color: appworkspace;
  236. }
  237. </style>
  238. <script type="text/javascript">
  239. function handleLoginRequest(xhr, status, args) {
  240. if (args.validationFailed || !args.loggedIn) {
  241. PF('dlg').jq.effect("shake", {times: 5}, 100);
  242. } else {
  243. PF('dlg').hide();
  244. }
  245. }
  246. </script>
  247. </h:head>
  248.  
  249. <h:body>
  250. <h:form id="loginForm">
  251. <h:panelGrid columns="1">
  252. <p:outputLabel value="LoggedIn: #{schuelerCon.loggedIn}" style="color: whitesmoke"/>
  253. <p:commandButton type="button" value="Login" onclick="PF('dlg').show();" title="login"/>
  254. </h:panelGrid>
  255.  
  256. <p:growl id="growl" sticky="true" showDetail="true" life="3000" />
  257.  
  258. <p:dialog header="Login" widgetVar="dlg" resizable="false">
  259. <h:panelGrid columns="2" cellpadding="5">
  260. <h:outputLabel for="username" value="Username:" />
  261. <p:inputText id="username" value="#{schuelerCon.username}" required="true" label="username" />
  262.  
  263. <h:outputLabel for="password" value="Password:" />
  264. <p:password id="password" value="#{schuelerCon.password}" required="true" label="password" />
  265.  
  266. <f:facet name="footer">
  267. <p:commandButton value="Login" update="growl loginForm :dataForm" actionListener="#{schuelerCon.login()}"
  268. oncomplete="handleLoginRequest(xhr, status, args)"/>
  269. </f:facet>
  270. </h:panelGrid>
  271. </p:dialog>
  272. </h:form>
  273.  
  274. <h:form id="dataForm" style="position: absolute; top: 5px; left: 350px;">
  275. <p:dataTable value="#{schuelerCon.klasse}"
  276. var="schueler"
  277.  
  278. filteredValue="#{schuelerCon.filteredKlasse}"
  279. emptyMessage="Kein Schüler gefunden!"
  280.  
  281. selection="#{schuelerCon.selectedKlasse}"
  282. rowKey="#{schueler}"
  283.  
  284. style="width:800px;height:100px; text-align: center;"
  285. >
  286.  
  287. <f:facet name="header">
  288. Schüler
  289. </f:facet>
  290.  
  291. <p:column selectionMode="multiple" style="width:18px;"/>
  292.  
  293. <p:column>
  294. <f:facet name="header">Katalognummer</f:facet>
  295. <h:outputText value="#{schueler.nr}"/>
  296. </p:column>
  297. <p:column filterBy="#{schueler.nachname}" filterMatchMode="contains">
  298. <f:facet name="header">Zuname</f:facet>
  299. <h:outputText value="#{schueler.nachname}"/>
  300. </p:column>
  301. <p:column filterBy="#{schueler.vorname}" filterMatchMode="contains">
  302. <f:facet name="header">Vorname</f:facet>
  303. <h:outputText value="#{schueler.vorname}"/>
  304. </p:column>
  305. </p:dataTable>
  306. </h:form>
  307.  
  308. <h:form id="buttonForm" style="position: absolute; top: 100px; left: 5px;">
  309. <h:panelGrid columns="3" cellpadding="5">
  310. <p:commandButton value="Show" type="button" update=":sdataForm" onclick="PF('dlg1').show();" />
  311.  
  312. <p:commandButton value="Add" type="button" onclick="PF('dlg2').show();" />
  313.  
  314. <p:commandButton value="Delete" type="button" onclick="PF('dlg3').show();" actionListener="#{schuelerCon.deleteSchueler()}" update=":dataForm"/>
  315. </h:panelGrid>
  316.  
  317. <p:dialog header="Show Dialog" widgetVar="dlg1" minHeight="40">
  318. <h:form id="sdataForm">
  319. <p:dataTable value="#{schuelerCon.selectedKlasse}"
  320. var="sschueler"
  321.  
  322. style="text-align: center;"
  323. >
  324.  
  325. <p:column>
  326. <f:facet name="header">Katalognummer</f:facet>
  327. <h:outputText value="#{sschueler.nr}"/>
  328. </p:column>
  329. <p:column>
  330. <f:facet name="header">Zuname</f:facet>
  331. <h:outputText value="#{sschueler.nachname}"/>
  332. </p:column>
  333. <p:column>
  334. <f:facet name="header">Vorname</f:facet>
  335. <h:outputText value="#{sschueler.vorname}"/>
  336. </p:column>
  337. </p:dataTable>
  338. </h:form>
  339. </p:dialog>
  340.  
  341. <p:dialog header="Add Dialog" widgetVar="dlg2" modal="true" height="150" width="320">
  342. <h:panelGrid columns="3">
  343. <h:outputLabel value="Vorname: "/>
  344. <h:inputText id="vn" value="#{schuelerCon.newSchueler.vorname}"
  345. required="true" requiredMessage="Vorname erforderlich!"/>
  346. <h:message for="vn" />
  347.  
  348. <h:outputLabel value="Zuname: "/>
  349. <h:inputText id="zn" value="#{schuelerCon.newSchueler.nachname}"
  350. required="true" requiredMessage="Zuname erforderlich!" />
  351. <h:message for="zn" />
  352.  
  353. <h:outputLabel value="Weiblich: "/>
  354. <h:selectBooleanCheckbox id="sex2" value="#{schuelerCon.weiblich}" />
  355. <h:message for="sex2" />
  356.  
  357. <p:commandButton id="cb" actionListener="#{schuelerCon.addSchueler()}" value="Save"/>
  358. </h:panelGrid>
  359. </p:dialog>
  360.  
  361. <p:dialog header="Delete Dialog" widgetVar="dlg3" showEffect="explode" hideEffect="bounce" height="50">
  362. <p:outputLabel value="Schüler erfolgreich gelöscht"/>
  363. </p:dialog>
  364. </h:form>
  365. </h:body>
  366. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement