Пояснительная записка к диплому (1228397), страница 14
Текст из файла (страница 14)
FacesContext.getCurrentInstance().
getApplication().
createValueBinding("#{citiesController}").
setValue(FacesContext.getCurrentInstance(), null);
FacesContext.getCurrentInstance().
getApplication().
createValueBinding("#{streetsController}").
setValue(FacesContext.getCurrentInstance(), null);
if (Edit == false) {
return "/adress/Create";
} else {
return "/adress/View";
}
}
public AdressController() {
}
public Adress getSelected() {
if (current == null) {
current = new Adress();
}
return current;
}
private AdressFacade getFacade() {
return ejbFacade;
}
public PaginationHelper getPagination() {
if (pagination == null) {
pagination = new PaginationHelper(10) {
@Override
public int getItemsCount() {
return getFacade().countFiltr("Adress",
new String[]{"cityR.city", "streetR.street", "house"},
new String[]{Scity, Sstreet, Shouse}, "");
}
@Override
public DataModel createPageDataModel() {
return new ListDataModel(getFacade().Search("Adress",
new String[]{"cityR.city", "streetR.street", "house"},
new String[]{Scity, Sstreet, Shouse}, "",
new int[]{getPageFirstItem(), getPageFirstItem() + getPageSize()}));
}
};
}
return pagination;
}
public String prepareList() {
recreateModel();
return "List";
}
public String prepareCreate() {
current = new Adress();
return "Create";
}
public String create() {
try {
getFacade().create(current);
JsfUtil.addSuccessMessage(ResourceBundle.getBundle("/Bundle").getString("AdressCreated"));
return prepareCreate();
} catch (Exception e) {
JsfUtil.addErrorMessage(e, ResourceBundle.getBundle("/Bundle").getString("PersistenceErrorOccured"));
return null;
}
}
public String prepareEdit() {
current = (Adress) getItems().getRowData();
return "View";
}
public String update() {
try {
getFacade().edit(current);
JsfUtil.addSuccessMessage(ResourceBundle.getBundle("/Bundle").getString("AdressUpdated"));
return "View";
} catch (Exception e) {
JsfUtil.addErrorMessage(e, ResourceBundle.getBundle("/Bundle").getString("PersistenceErrorOccured"));
return null;
}
}
public DataModel getItems() {
if (items == null) {
items = getPagination().createPageDataModel();
}
return items;
}
private void recreateModel() {
items = null;
}
public String first() {
getPagination().begining();
recreateModel();
return "List";
}
public String last() {
getPagination().ending();
recreateModel();
return "List";
}
public String next() {
getPagination().nextPage();
recreateModel();
return "List";
}
public String previous() {
getPagination().previousPage();
recreateModel();
return "List";
}
}
Приложение Б
(рекомендуемое)
Код представлений блока адресов
Б.1 Код представления поисковой формы блока адресов
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
<ui:composition template="/template.xhtml">
<ui:define name="title">
<h:outputText value="Форма поиска адресов"></h:outputText>
</ui:define>
<ui:define name="main_content">
<f:view>
<h:form>
<h1><h:outputText value="Задайте параметры для поиска"/></h1>
<h:panelGrid columns="2">
<h:outputLabel value="Город:" for="cityR" />
<h:inputText id="cityR" value="#{adressController.scity}" title="cityR" />
<h:outputLabel value="Улица:" for="streetR" />
<h:inputText id="streetR" value="#{adressController.sstreet}" title="streetR" />
<h:outputLabel value="Дом:" for="house" />
<h:inputText id="house" value="#{adressController.shouse}" title="House" />
</h:panelGrid>
<h:commandLink action="#{adressController.TrySearch}" value="Задать фильтр" />
<br/>
<h:commandLink action="/workers/View" value="Вернуться к информации о работнике" rendered="#{adressController.adressForWorkerChoose}"/>
<h:commandLink action="/warehouseInfo/View" value="Вернуться к информации о складе" rendered="#{adressController.adressForWarehouseChoose}"/>
<br/>
<h:commandLink action="/workers/List" value="Вернуться к поиску по работникам" rendered="#{adressController.adressForWorkerChoose}"/>
<h:commandLink action="/warehouseInfo/List" value="Вернуться к поиску по складам" rendered="#{adressController.adressForWarehouseChoose}"/>
<h:messages />
</h:form>
</f:view>
</ui:define>
</ui:composition>
</html>
Б.2 Код представления просмотра результатов поиска блока адресов
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
<ui:composition template="/template.xhtml">
<ui:define name="title">
<h:outputText value="Результаты поиска адресов"></h:outputText>
</ui:define>
<ui:define name="main_content">
<f:view>
<h:form>
<h:outputText escape="false" value="Результатов по запросу не найдено, попробуйте изменить поисковый фильтр"
rendered="#{adressController.items.rowCount == 0}"/>
<h:panelGroup rendered="#{adressController.items.rowCount > 0}">
<h1><h:outputText value="Результаты поиска по адресам"/></h1>
<h:outputText value="#{adressController.pagination.pageFirstItem + 1}..#{adressController.pagination.pageLastItem + 1}/#{adressController.pagination.itemsCount}"/> <h:outputText value=" "/>
<h:commandLink action="#{adressController.first}" value="Начало"
rendered="#{adressController.pagination.hasPreviousPage and adressController.pagination.itemsCount gt 2*adressController.pagination.pageSize and adressController.pagination.page gt 1}"/> <h:outputText value=" "/>
<h:commandLink action="#{adressController.previous}" value="Назад"
rendered="#{adressController.pagination.hasPreviousPage}"/> <h:outputText value=" "/>
<h:commandLink action="#{adressController.next}" value="Вперед"
rendered="#{adressController.pagination.hasNextPage}"/> <h:outputText value=" "/>
<h:commandLink action="#{adressController.last}" value="Конец"
rendered="#{adressController.pagination.hasNextPage and adressController.pagination.itemsCount gt 2*adressController.pagination.pageSize and adressController.pagination.page lt adressController.pagination.lastPage-1}"/> <h:outputText value=" "/>
<h:dataTable value="#{adressController.items}" var="item">
<h:column>
<f:facet name="header">
<h:outputText value="Город"/>
</f:facet>
<h:outputText value="#{item.cityR.city}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Улица"/>
</f:facet>
<h:outputText value="#{item.streetR.street}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Дом"/>
</f:facet>
<h:outputText value="#{item.house}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value=" "/>
</f:facet>
<h:commandLink action="#{adressController.prepareEdit}" value="Просмотр/ред."/>
</h:column>
</h:dataTable>
</h:panelGroup>
<br/>
<h:commandLink action="/adress/SearchForm" value="Вернуться к заданию фильтра для поиска по адресам"/>
<br/>
<h:commandLink action="#{adressController.prepareCreate}" value="Добавить адрес"/>
<br/>
<h:commandLink action="/workers/View" value="Вернуться к информации о работнике"
rendered="#{adressController.adressForWorkerChoose}"/>
<h:commandLink action="/warehouseInfo/View" value="Вернуться к информации о складе"
rendered="#{adressController.adressForWarehouseChoose}"/>
<br/>
<h:commandLink action="/workers/List" value="Вернуться к поиску по работникам"
rendered="#{adressController.adressForWorkerChoose}"/>
<h:commandLink action="/warehouseInfo/List" value="Вернуться к поиску по складам"
rendered="#{adressController.adressForWarehouseChoose}"/>
<h:messages />
</h:form>
</f:view>
</ui:define>
</ui:composition>
</html>
Б.3 Код представления просмотра/редактирования записи блока адресов
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
<ui:composition template="/template.xhtml">
<ui:define name="title">
<h:outputText value="Просмотр записи адреса"></h:outputText>
</ui:define>
<ui:define name="main_content">
<f:view>
<h:form>
<h1><h:outputText value="Просмотр адреса"/></h1>
<h:panelGrid columns="2">
<h:outputLabel value="Город:" for="cityR" />
<h:panelGroup>
<h:selectOneMenu id="cityR" value="#{adressController.selected.cityR}" title="CityR" >
<f:selectItems value="#{citiesController.itemsAvailableSelectOne}"/>
</h:selectOneMenu>
<h:outputText value=" "/>
<h:commandButton action="#{citiesController.goEditCity(null,true)}" value="Добавить значеие"/>