Autor |
Mensagem |
|
Eu aqui no meu sistema fiz o seguinte criei o seguinte controller e todos meus outro controller acessam ele:
Code:
package br.com.geoexplore.geoenterprise.adm.controller;
import br.com.linkcom.neo.controller.crud.CrudController;
import br.com.linkcom.neo.controller.crud.FiltroListagem;
import br.com.linkcom.neo.core.web.WebRequestContext;
public class GeoController<FILTRO extends FiltroListagem, FORMBEAN, BEAN> extends CrudController<FILTRO, FORMBEAN, BEAN> {
@Override
protected void salvar(WebRequestContext request, BEAN bean) throws Exception {
super.salvar(request, bean);
request.addMessage("Registro salvo com sucesso!");
}
@Override
protected void excluir(WebRequestContext request, BEAN bean) throws Exception {
super.excluir(request, bean);
request.addMessage("Registro excluido com sucesso!");
}
}
é isso que vc quer????
|
 |
|
Tem como eu trocar a forma de selecionar o registro para editar ??? A forma que eu gostaria era a seguinte, en quanquer lugar da linha do registro que o usuario clicar o sistema abre a tela de edição sem ter que clicar no botão de editar. Tem como fazer isso???
|
 |
|
Esse problema acontece quando é vinculada no projeto a biblioteca prototype:
http://www.prototypejs.org/
eu tentei colocar ela e acontece esse problema... sem ela tudo fica normal
Valeu!!!!
|
 |
|
ok valeu!!!!!
|
 |
|
Vc´s ja pensaram na possibilidade da convesão do bean no lado do servidor para o lado do cliente. A questão é a seguinte eu fiz o seginte codigo:
Code:
public void getCoordenadaZPiezometro(WebRequestContext request,Model model)throws IOException{
Piezometro piezometro = (Piezometro) model.getModelo();
request.getServletResponse().getWriter().println(piezometroService.load(piezometro).getZ().floatValue());
}
nesse caso eu pego somente uma propriedade teria como eu pegar todas as propriedades do bean e no JavaScript eu poderia ver todas as informações do bean ao invez de ter que fazer um metodo para cada atributo. deu pra entender???
|
 |
|
Coloquei nesse metodo.
Code:
@Override
public ModelAndView doEntrada(WebRequestContext request, Piezometro form) throws CrudException {
if (((GeoBean)form).getId() == null){
form.setStatus("O");
}
return super.doEntrada(request, form);
}
|
 |
|
Funcionou certinho valeu!!!!!!
|
 |
|
Em qual metodo do controller????
|
 |
|
Como faço para colocar um valor padrão em um campo quando eu entro na tela de cadastro, somente quando eu crio um novo registro???
|
 |
|
Boa tarde, eutenho um bean Estrutura que tem como pai uma Area
Code:
public class Estrutura extends GeoBean{
...
private Area area;
...
@ManyToOne
@JoinColumn(name = "GB0NUMAR", referencedColumnName = "ADANUMAR")
@Required
public Area getArea() {
return area;
}
...
A area esta da seguinte forma:
Code:
public class Area extends GeoBean{
...
private Projeto projeto;
...
@Required
@ManyToOne
@JoinColumn(name = "ADANUMPJ", referencedColumnName = "ADBNUMPJ")
public Projeto getProjeto() {
return projeto;
}
...
Na entrada de dados da estrutura esta funcionando o o combo dinamico do Projeto e Area:
Code:
<n:comboReloadGroup useAjax="true">
<t:property name="area.projeto" label="Projeto" ONCHANGE="getBean(this)" />
<t:property name="area" label="Area" ONCHANGE="getBean(this)" />
</n:comboReloadGroup>
mas no filtro o combo do projeto esta como requerido e quando eu não preencho o Combo da Area dá um erro, o EstruturaFiltro esta da seguinte forma:
Code:
public class EstruturaFiltro extends FiltroListagem {
private Area area;
...
public Area getArea() {
return area;
}
...
}
O EstruturaDAO esta assim:
Code:
@Override
public void updateListagemQuery(QueryBuilder<Estrutura> query, FiltroListagem _filtro) {
EstruturaFiltro filtro = (EstruturaFiltro) _filtro;
query.where("estrutura.area = ?", filtro.getArea())
.whereLike("estrutura.codigo", filtro.getCodigo())
.whereLike("estrutura.nome", filtro.getNome())
.whereLike("estrutura.tipo", filtro.getTipo());
}
E o jsp de listagem esta assim:
Code:
...
<t:janelaFiltro>
<t:tabelaFiltro>
<n:comboReloadGroup useAjax="true">
<t:property name="area.projeto" label="Projeto"/>
<t:property name="area" label="Area"/>
</n:comboReloadGroup>
<t:property name="codigo"/>
<t:property name="nome"/>
<t:property name="tipo"/>
</t:tabelaFiltro>
</t:janelaFiltro>
...
Deu pra entender ???? sabe oque pode ser???
|
 |
|
Tem como vc explicar melhor como eu implementaria essa annotation???
|
 |
|
A questão é o seguinte o @DescriptionProperty eu coloquei na sigla dos objetos pois serão eles que irão aparecer no grid por exemplo e nos combos eu tenho que listar ele e ao lado eu preciso de mostrar uma outroa propriedade .... ai que vem o problema como vc´s viram ... essa propriedade vai depender de bean para bean .... será que seria interessante buscar o valor da propriedade com reflexão??? outra coisa ... no exemplo que vc colocou o Model teria que ter o atributo modelo do tipo Object mesmo ou teria que ter um para cada um????
|
 |
|
Certo... eu fiz o seguinte.. no EntradaTag.jsp coloquei essa função:
Criei uma classe para receber as requisições ajax:
Code:
@Controller(path="/adm/AjaxCombo")
public class ComboAjaxController extends MultiActionController {
AreaService areaService;
ProjetoService projetoService;
....
public void setAreaService(AreaService areaService) {
this.areaService = areaService;
}
public void setProjetoService(ProjetoService projetoService) {
this.projetoService = projetoService;
}
...
public void getProjeto(WebRequestContext request)throws IOException{
Projeto projeto = (Projeto) ServletRequestDataBinderNeo.translateObjectValue(null, request.getParameter("projeto"), null);
request.getServletResponse().getWriter().print(projetoService.load(projeto).getDescricao());
}
public void getArea(WebRequestContext request)throws IOException{
Area area = (Area) ServletRequestDataBinderNeo.translateObjectValue(null, request.getParameter("area"), null);
request.getServletResponse().getWriter().print(areaService.load(area).getNome());
}
.....
}
Code:
var objName = '';
function getBean(obj){
objName = obj.name;
beanName = obj.name.substring(obj.name.lastIndexOf('.')+1,obj.name.length);
metodo = 'get' + beanName.substring(0,1).toUpperCase() + beanName.substring(1,beanName.length);
if (obj.value != "<null>"){
sendRequest('${pageContext.request.contextPath}/adm/AjaxCombo?'+beanName+'='+obj.value,'ACAO='+metodo,'POST', setDescricaoBean, erroChamarAjax);
}else{
document.getElementById("msg."+objName).style.display = "none";
document.getElementById("msg."+objName).innerHTML = "";
}
}
function setDescricaoBean(data){
if (data == 'null')data = 'Descrição não preenchida';
document.getElementById("msg."+objName).style.display = "";
document.getElementById("msg."+objName).innerHTML = data;
}
function erroChamarAjax(request){
document.getElementById("msg."+objName).style.display = "";
document.getElementById("msg."+objName).innerHTML = request.responseText;
}
e no JSP eu coloquei o seguinte codigo
Code:
<n:comboReloadGroup useAjax="true">
<t:property name="area.projeto" label="Projeto" ONCHANGE="getBean(this)" />
<t:property name="area" label="Area" ONCHANGE="getBean(this)" />
</n:comboReloadGroup>
Ficou assim ..... será que tem como melhorar????
|
 |
|
Bom dia, eu fiz tudo isso e esta funcionando, o que eu quero agora é o seguinte. No combo(que é listado um codigo String) quando o usuario altera o valor eu queria fazer com que na frente do combo aparecesse a descrição do bean, para fazer isso eu teria que chamar o metodo load() do Service do respectivo bean na entrada via ajax, mas existe alguma forma mais facil de fazer isso???? deu pra entender???
|
 |
|
Esta no Topico http://www.neoframework.org/forum/posts/list/41.page
que vc´s vão colocar um tutorial de Internacionalização isso ja esta sendo feito??? pois eu não sei como fazer..... ou então algum link que mostra como é feito isso no Spring ja que o FrameWork é baseado nele.
Obrigado,
|
 |
|