Merge branch 'master' of https://git.bukova.info/repos/git/isspst
commit
1354d8b9ed
@ -0,0 +1,7 @@
|
||||
package info.bukova.isspst.dao;
|
||||
|
||||
import info.bukova.isspst.data.Material;
|
||||
|
||||
public interface MaterialDao extends BaseDao<Material> {
|
||||
|
||||
}
|
@ -0,0 +1,14 @@
|
||||
package info.bukova.isspst.dao.jpa;
|
||||
|
||||
import info.bukova.isspst.dao.MaterialDao;
|
||||
import info.bukova.isspst.data.Material;
|
||||
|
||||
public class MaterialDaoJPA extends BaseDaoJPA<Material> implements MaterialDao {
|
||||
|
||||
@Override
|
||||
public String getEntityName() {
|
||||
return Material.class.getSimpleName();
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,12 @@
|
||||
package info.bukova.isspst.data;
|
||||
|
||||
import javax.persistence.Entity;
|
||||
import javax.persistence.Table;
|
||||
|
||||
@Entity
|
||||
@Table(name="MATERIAL")
|
||||
public class Material extends RequestSubject {
|
||||
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,43 @@
|
||||
package info.bukova.isspst.data;
|
||||
|
||||
import javax.persistence.Column;
|
||||
import javax.persistence.MappedSuperclass;
|
||||
|
||||
import org.hibernate.validator.constraints.NotEmpty;
|
||||
|
||||
@MappedSuperclass
|
||||
public class RequestSubject extends BaseData {
|
||||
|
||||
@Column(name = "CODE", unique = true)
|
||||
private String code;
|
||||
@Column(name = "NAME")
|
||||
private String name;
|
||||
@Column(name = "DESCRIPTION")
|
||||
private String description;
|
||||
|
||||
@NotEmpty(message = "{MaterialFormCodeConstr}")
|
||||
public String getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public void setCode(String code) {
|
||||
this.code = code;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getDescription() {
|
||||
return description;
|
||||
}
|
||||
|
||||
public void setDescription(String description) {
|
||||
this.description = description;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,56 @@
|
||||
package info.bukova.isspst.filters;
|
||||
|
||||
import static info.bukova.isspst.StringUtils.nullStr;
|
||||
import info.bukova.isspst.data.Material;
|
||||
|
||||
import org.hamcrest.Description;
|
||||
import org.hamcrest.Factory;
|
||||
import org.hamcrest.Matcher;
|
||||
import org.hamcrest.TypeSafeMatcher;
|
||||
|
||||
public class MaterialFilter implements Filter<Material> {
|
||||
|
||||
private Material condMaterial;
|
||||
|
||||
public MaterialFilter(Material condMaterial) {
|
||||
this.condMaterial = condMaterial;
|
||||
}
|
||||
|
||||
private static class MaterialMatcher extends TypeSafeMatcher<Material> {
|
||||
|
||||
private Material condMaterial;
|
||||
|
||||
public MaterialMatcher(Material cond) {
|
||||
this.condMaterial = cond;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void describeTo(Description desc) {
|
||||
desc.appendText("material matches");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean matchesSafely(Material item) {
|
||||
return nullStr(item.getCode()).toLowerCase().contains(nullStr(condMaterial.getCode()).toLowerCase())
|
||||
&& nullStr(item.getName()).toLowerCase().contains(nullStr(condMaterial.getName()).toLowerCase())
|
||||
&& nullStr(item.getDescription()).toLowerCase().contains(nullStr(condMaterial.getDescription()).toLowerCase());
|
||||
}
|
||||
|
||||
@Factory
|
||||
public static Matcher<Material> matchBuilding(Material material) {
|
||||
return new MaterialMatcher(material);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public MaterialMatcher matcher() {
|
||||
return new MaterialMatcher(condMaterial);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String queryString() {
|
||||
// TODO query string
|
||||
return "";
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
package info.bukova.isspst.services.material;
|
||||
|
||||
import info.bukova.isspst.data.Material;
|
||||
import info.bukova.isspst.services.Service;
|
||||
|
||||
public interface MaterialService extends Service<Material> {
|
||||
|
||||
}
|
@ -0,0 +1,9 @@
|
||||
package info.bukova.isspst.services.material;
|
||||
|
||||
import info.bukova.isspst.data.Material;
|
||||
import info.bukova.isspst.services.AbstractOwnedService;
|
||||
|
||||
public class MaterialServiceImpl extends AbstractOwnedService<Material>
|
||||
implements MaterialService {
|
||||
|
||||
}
|
@ -0,0 +1,15 @@
|
||||
package info.bukova.isspst.ui.material;
|
||||
|
||||
import org.zkoss.bind.annotation.Init;
|
||||
|
||||
import info.bukova.isspst.data.Material;
|
||||
import info.bukova.isspst.ui.FormViewModel;
|
||||
|
||||
public class MaterialForm extends FormViewModel<Material> {
|
||||
|
||||
@Init(superclass = true)
|
||||
public void init() {
|
||||
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,24 @@
|
||||
package info.bukova.isspst.ui.material;
|
||||
|
||||
import org.zkoss.bind.annotation.Init;
|
||||
import org.zkoss.zk.ui.select.annotation.WireVariable;
|
||||
|
||||
import info.bukova.isspst.data.Material;
|
||||
import info.bukova.isspst.filters.MaterialFilter;
|
||||
import info.bukova.isspst.services.material.MaterialService;
|
||||
import info.bukova.isspst.ui.ListViewModel;
|
||||
|
||||
public class MaterialList extends ListViewModel<Material> {
|
||||
|
||||
@WireVariable
|
||||
private MaterialService materialService;
|
||||
|
||||
@Init
|
||||
public void init() {
|
||||
service = materialService;
|
||||
dataClass = Material.class;
|
||||
formZul = "materialForm.zul";
|
||||
dataFilter = new MaterialFilter(getFilterTemplate());
|
||||
}
|
||||
|
||||
}
|
@ -1,2 +1,3 @@
|
||||
BuildingsFormCodeConstr=Zadejte k\u00f3d budovy...
|
||||
MUnitsFormCodeConstr=Zadejte k\u00f3d m\u011brn\u00e9 jednotky...
|
||||
BuildingsFormCodeConstr = Zadejte k\u00F3d budovy...
|
||||
MaterialFormCodeConstr = Zadejte k\u00F3d materi\u00E1lu...
|
||||
MUnitsFormCodeConstr=Zadejte k\u00f3d m\u011brn\u00e9 jednotky...
|
||||
|
Binary file not shown.
After Width: | Height: | Size: 3.4 KiB |
@ -0,0 +1,10 @@
|
||||
<?page title="${labels.AgendaMaterial}" contentType="text/html;charset=UTF-8"?>
|
||||
<zk>
|
||||
|
||||
<zscript>
|
||||
String gridZul = "material.zul";
|
||||
</zscript>
|
||||
|
||||
<include src="/app/template.zhtml"/>
|
||||
|
||||
</zk>
|
@ -0,0 +1,58 @@
|
||||
<?page title="${labels.AgendaMaterial}" contentType="text/html;charset=UTF-8"?>
|
||||
<zk>
|
||||
<?variable-resolver class="org.zkoss.zkplus.spring.DelegatingVariableResolver"?>
|
||||
<window border="normal" apply="org.zkoss.bind.BindComposer" viewModel="@id('vm') @init('info.bukova.isspst.ui.material.MaterialList')">
|
||||
<caption zclass="form-caption" label="${labels.AgendaMaterial}" />
|
||||
<include src="/app/toolbar.zul" />
|
||||
|
||||
<listbox model="@load(vm.dataList)" selectedItem="@bind(vm.dataBean)" height="500px">
|
||||
<listhead menupopup="auto">
|
||||
<listheader label="${labels.code}" sort="czech(code)" width="10%" />
|
||||
<listheader label="${labels.name}" sort="czech(name)" width="30%" />
|
||||
<listheader label="${labels.description}" sort="czech(description)" width="60%" />
|
||||
</listhead>
|
||||
|
||||
<auxhead sclass="category-center" visible="@load(vm.filter)">
|
||||
<auxheader>
|
||||
<div sclass="find-grid-cell">
|
||||
<div sclass="find-grid-divtextbox">
|
||||
<textbox value="@bind(vm.filterTemplate.code)" instant="true" onChange="@command('doFilter')" sclass="find-grid-textbox" />
|
||||
</div>
|
||||
<div sclass="find-grid-img">
|
||||
<image src="/img/funnel.png" />
|
||||
</div>
|
||||
</div>
|
||||
</auxheader>
|
||||
<auxheader>
|
||||
<div sclass="find-grid-cell">
|
||||
<div sclass="find-grid-divtextbox">
|
||||
<textbox value="@bind(vm.filterTemplate.name)" instant="true" onChange="@command('doFilter')" sclass="find-grid-textbox" />
|
||||
</div>
|
||||
<div sclass="find-grid-img">
|
||||
<image src="/img/funnel.png" />
|
||||
</div>
|
||||
</div>
|
||||
</auxheader>
|
||||
<auxheader>
|
||||
<div sclass="find-grid-cell">
|
||||
<div sclass="find-grid-divtextbox">
|
||||
<textbox value="@bind(vm.filterTemplate.description)" instant="true" onChange="@command('doFilter')" sclass="find-grid-textbox" />
|
||||
</div>
|
||||
<div sclass="find-grid-img">
|
||||
<image src="/img/funnel.png" />
|
||||
</div>
|
||||
</div>
|
||||
</auxheader>
|
||||
</auxhead>
|
||||
|
||||
<template name="model">
|
||||
<listitem>
|
||||
<listcell label="@load(each.code)" />
|
||||
<listcell label="@load(each.name)" />
|
||||
<listcell label="@load(each.description)" />
|
||||
</listitem>
|
||||
</template>
|
||||
</listbox>
|
||||
|
||||
</window>
|
||||
</zk>
|
@ -0,0 +1,36 @@
|
||||
<?page title="${labels.MaterialFormTitle}" contentType="text/html;charset=UTF-8"?>
|
||||
<zk>
|
||||
<window id="editWin" closable="true" border="normal" position="center" apply="org.zkoss.bind.BindComposer"
|
||||
viewModel="@id('vm') @init('info.bukova.isspst.ui.material.MaterialForm')">
|
||||
<caption src="/img/material.png" zclass="form-caption" label="${labels.MaterialFormTitle}" />
|
||||
<vlayout>
|
||||
<grid hflex="min">
|
||||
<columns>
|
||||
<column align="right" hflex="min" />
|
||||
<column />
|
||||
</columns>
|
||||
<rows>
|
||||
<row>
|
||||
<cell sclass="row-title">${labels.code} :</cell>
|
||||
<cell>
|
||||
<textbox id="code" constraint="@load(vm.constriant)" width="200px" value="@bind(vm.dataBean.code)" />
|
||||
</cell>
|
||||
</row>
|
||||
<row>
|
||||
<cell sclass="row-title">${labels.name} :</cell>
|
||||
<cell>
|
||||
<textbox id="name" width="200px" value="@bind(vm.dataBean.name)" />
|
||||
</cell>
|
||||
</row>
|
||||
<row>
|
||||
<cell sclass="row-title">${labels.description} :</cell>
|
||||
<cell>
|
||||
<textbox id="description" width="300px" value="@bind(vm.dataBean.description)" />
|
||||
</cell>
|
||||
</row>
|
||||
</rows>
|
||||
</grid>
|
||||
<include src="/app/formButtons.zul" />
|
||||
</vlayout>
|
||||
</window>
|
||||
</zk>
|
Loading…
Reference in New Issue