18 package org.turro.contacts.zul.fields;
20 import java.util.Date;
21 import org.turro.contacts.FieldDef;
22 import org.turro.contacts.db.ContactsPU;
23 import org.turro.contacts.zul.contact.TagNameCombobox;
24 import org.turro.elephant.context.Application;
25 import org.turro.elephant.db.WhereClause;
26 import org.turro.elephant.util.Messages;
27 import org.turro.i18n.I_;
28 import org.turro.jpa.Dao;
29 import org.turro.zul.frame.Framework;
30 import org.zkoss.zk.ui.event.Event;
31 import org.zkoss.zk.ui.event.EventListener;
32 import org.zkoss.zk.ui.event.Events;
33 import org.zkoss.zul.Image;
34 import org.zkoss.zul.Listbox;
35 import org.zkoss.zul.Row;
36 import org.zkoss.zul.Textbox;
47 this.fieldDef = fieldDef;
56 this.fieldDef = fieldDef;
59 private void addCells() {
61 tag.setStyle(
"width:100%");
63 tag.addEventListener(Events.ON_CHANGE,
new EventListener() {
65 public void onEvent(Event event)
throws Exception {
71 final Textbox tabKey =
new Textbox(fieldDef.
getTabKey());
72 tabKey.setStyle(
"width:100%");
73 tabKey.addEventListener(Events.ON_CHANGE,
new EventListener() {
75 public void onEvent(Event event)
throws Exception {
81 final Textbox labelKey =
new Textbox(fieldDef.
getLabelKey());
82 labelKey.setStyle(
"width:100%");
83 labelKey.addEventListener(Events.ON_CHANGE,
new EventListener() {
85 public void onEvent(Event event)
throws Exception {
89 appendChild(labelKey);
91 final Listbox classes =
new Listbox();
92 classes.setMold(
"select");
93 classes.appendItem(I_.get(
"String"), String.class.getName())
94 .setSelected(String.class.equals(fieldDef.
getJavaClass()));
95 classes.appendItem(I_.get(
"Long integer"), Long.class.getName())
96 .setSelected(Long.class.equals(fieldDef.
getJavaClass()));
97 classes.appendItem(I_.get(
"Double"), Double.class.getName())
98 .setSelected(Double.class.equals(fieldDef.
getJavaClass()));
99 classes.appendItem(I_.get(
"Date"), Date.class.getName())
100 .setSelected(Date.class.equals(fieldDef.
getJavaClass()));
101 classes.appendItem(I_.get(
"Boolean"), Boolean.class.getName())
102 .setSelected(Boolean.class.equals(fieldDef.
getJavaClass()));
103 classes.addEventListener(Events.ON_SELECT,
new EventListener() {
105 public void onEvent(Event event)
throws Exception {
106 fieldDef.
setJavaClass(Class.forName((String) classes.getSelectedItem().getValue()));
109 if(classes.getSelectedItem() ==
null) {
112 appendChild(classes);
114 if(Application.getApplication().isInRole(
"contact-field:delete")) {
115 Image img =
new Image(
"/_zul/images/edit-delete.png");
116 img.setStyle(
"cursor:pointer");
117 img.addEventListener(Events.ON_CLICK,
new EventListener() {
119 public void onEvent(Event event)
throws Exception {
120 Messages.confirmDeletion().show(() -> {
122 Framework.getCurrent().invalidateSelected();
130 private void deleteFieldDef() {
131 Dao dao =
new ContactsPU();
132 WhereClause wc =
new WhereClause();
133 wc.addClause(
"delete from FieldValue as fieldValue");
134 wc.addClause(
"where fieldValue.fieldDef = :fieldDef");
135 wc.addNamedValue(
"fieldDef", fieldDef);
136 dao.executeUpdate(wc);
137 wc =
new WhereClause();
138 wc.addClause(
"delete from FieldDef as fieldDef");
139 wc.addClause(
"where fieldDef = :fieldDef");
140 wc.addNamedValue(
"fieldDef", fieldDef);
141 dao.executeUpdate(wc);