Drag Drop richFaces

Boa tarde a todos,

Estou tentando fazer um drag drop e já verifiquei os exemplos disponíveis no site do richfaces, mas quando arrasto o objeto os dataTable não renderizam…

segue o código do metodo do meu manageBean


public void processDrop(DropEvent dropEvent) {
		Dropzone dropzone = (Dropzone) dropEvent.getComponent();
		Object produtoArrastado = dropEvent.getDragValue();
		Object dropValue = dropzone.getDropValue();
		if ("SELECIONADO".equals(dropValue)) {
			if (produtosDisponiveis.contains(produtoArrastado)){
				int indiceProdutoSelecionado = produtosDisponiveis.indexOf(produtoArrastado);
				produtosSelecionados.add(produtosDisponiveis.get(indiceProdutoSelecionado));
				produtosDisponiveis.remove(indiceProdutoSelecionado);
			}
		}
	}

E agora o codigo no meu xhtml


<rich:dragIndicator id="indicator" />

			

				<h:panelGrid columnClasses="panelc" columns="4" width="100%">

					<rich:panel style="width:133px">
						<f:facet name="header">
							<h:outputText value="disponivel" />
						</f:facet>
						<h:dataTable id="src" columns="1" value="#{produtoOferecidoBean.produtosDisponiveis}"
							var="fm" footerClass="footerClass">

							<h:column>
								<a4j:outputPanel
									style="width:100px;border:1px solid gray;padding:2px"
									layout="block">
									<rich:dragSupport dragIndicator=":indicator"
										dragType="PRODUTO" dragValue="#{fm}">
										<rich:dndParam name="label" value="#{fm.nome}" />
									</rich:dragSupport>
									<h:outputText value="#{fm.nome}"></h:outputText>
								</a4j:outputPanel>
							</h:column>
							<f:facet name="footer">
								<a4j:commandButton action="#{produtoOferecidoBean.reset}" value="Start Over"
									reRender="src,phptable" />
							</f:facet>
						</h:dataTable>
					</rich:panel>




					<rich:panel styleClass="dropTargetPanel">
						<f:facet name="header">
							<h:outputText value="Produtos Selecionados" />
						</f:facet>
						<rich:dropSupport id="php" acceptedTypes="PRODUTO"
							dropValue="SELECIONADO"
							dropListener="#{produtoOferecidoBean.processDrop}"
							reRender="phptable, src">
						</rich:dropSupport>

						<h:dataTable id="phptable" columns="1"
							value="#{produtoOferecidoBean.produtosSelecionados}" var="fm">
							<h:column>
								<h:outputText value="#{fm.nome}"></h:outputText>
							</h:column>
						</h:dataTable>
					</rich:panel>

				</h:panelGrid>
				
				<a4j:outputPanel ajaxRendered="true">
					<h:messages></h:messages>
				</a4j:outputPanel>
				
				
		</rich:panel>

Não percebo nenhum erro a não ser a mensagem : org.richfaces.renderkit.html.HtmlRichMessageRenderer doEncodeEnd

Será que alguém já passou por isso??
Qualquer ajuda será bem vinda…

Oi awilaz,

Bom to com uma duvida igual a sua… preciso usar esse componente e estou com dificuldades… sera q vc resolveu ja??
se puder me ajudar…rsrs :wink:

Olá… resolvi sim o meu ficou assim:

<div id="comp" style="display:none; border:none;">
			<rich:dragIndicator id="indicator" />
			<h:form id="form">
				<table width="100%" border="0">
					<tr>
						<td>
							<rich:datascroller align="left" for="src" maxPages="20" id="sc3" />
	        				<rich:spacer height="30" />
							<rich:dataTable id="src"
								value="#{produtoOferecidoBean.produtosDisponiveis}" var="fm"
								footerClass="footerClass" width="400px" columnsWidth="50%, 25%, 25%" rows="5">
								<f:facet name="header">
		            				<h:outputText value="Produtos Disponiveis"/>
		            			</f:facet>
								<rich:column sortBy="#{fm.nome}" filterBy="#{fm.nome}"
									filterEvent="onkeyup">
									<f:facet name="header">
										<h:outputText value="Nome" />
									</f:facet>
									<a4j:outputPanel>
										<rich:dragSupport dragIndicator=":indicator" dragType="PRODUTO"
											dragValue="#{fm}">
											<rich:dndParam name="label" value="#{fm.nome}" />
										</rich:dragSupport>
										<h:outputText value="#{fm.nome}"></h:outputText>
									</a4j:outputPanel>
								</rich:column>
								<rich:column sortBy="#{fm.marca.nome}" filterBy="#{fm.marca.nome}"
									filterEvent="onkeyup">
									<f:facet name="header">
										<h:outputText value="Marca" />
									</f:facet>
									<h:outputText value="#{fm.marca.nome}"></h:outputText>
								</rich:column>
								<rich:column sortBy="#{fm.medida.nome}" filterBy="#{fm.medida.nome}"
									filterEvent="onkeyup">
									<f:facet name="header">
										<h:outputText value="Medida" />
									</f:facet>
									<h:outputText value="#{fm.medida.nome}"></h:outputText>
								</rich:column>
								<f:facet name="footer">
									<a4j:commandButton action="#{produtoOferecidoBean.reset}"
										value="Iniciar" reRender="src,phptable,sc3,php" styleClass="comp"/>
								</f:facet>
							</rich:dataTable>
						</td>
						<td>
							<rich:panel styleClass="dropTargetPanel" style="border:none;">
								<rich:dropSupport id="php" acceptedTypes="PRODUTO"
									dropValue="PRODUTO"
									dropListener="#{produtoOferecidoBean.processDrop}"
									reRender="phptable, src">
								</rich:dropSupport>
								<rich:dataTable id="phptable" value="#{produtoOferecidoBean.comps}" 
										var="fm" columnsWidth="60%, 20%, 20%" width="400px">
									<f:facet name="header">
		            					<h:outputText value="Composicao"/>
		            				</f:facet>
									<rich:column>
										<f:facet name="header">
											<h:outputText value="Nome" />
										</f:facet>
										<h:outputText value="#{fm.produto.nome}"></h:outputText>
									</rich:column>
									<rich:column>
										<f:facet name="header">
											<h:outputText value="Quantidade" />
										</f:facet>
										<h:inputText value="#{fm.quantidade}" size="4" onkeypress="mascara(this,soNumeros);"
																style="text-align: right;"></h:inputText>
									</rich:column>
									<rich:column>
										<f:facet name="header">
											<h:outputText value="Quantidade" />
										</f:facet>
										<h:outputLabel value="#{fm.produto.medida.nome}" ></h:outputLabel>
									</rich:column>
									<f:facet name="footer">
										<a4j:commandButton action="#{produtoOferecidoBean.calculaPrecoMedio}"
										value="Fim" reRender="src,phptable, sc3, custo" styleClass="comp" onclick="renderizaPrecoLucro();"/>
									</f:facet>
								</rich:dataTable>
							</rich:panel>
						</td>
					</tr>
				</table>
			</h:form>
			
		</div>

e o meu bean


	public void processDrop(DropEvent dropEvent) {
		Dropzone dropzone = (Dropzone) dropEvent.getComponent();
		Object produtoArrastado = dropEvent.getDragValue();
		Object dropValue = dropzone.getDropValue();
		if ("PRODUTO".equals(dropValue)) {
			if (produtosDisponiveis.contains(produtoArrastado)){
				int indiceProdutoSelecionado = produtosDisponiveis.indexOf(produtoArrastado);
				Componente comp = new Componente();
				comp.setProduto(produtosDisponiveis.get(indiceProdutoSelecionado));
				comps.add(comp);
				produtosDisponiveis.remove(indiceProdutoSelecionado);
			}
		}
	}

Espero que ajude… se tiver duvidas me diga.

Pow awilaz, vlw …
Funciono sim… agora so acertar umas coisinhas…
muito obrigada pela ajuda… :wink: