package panels;
import javax.swing.*;
import java.awt.*;
import com.borland.dx.sql.dataset.*;
import com.borland.dbswing.*;
import br.com.cilix.shadow.util.*;
import javax.swing.tree.*;
import javax.swing.event.*;
import br.com.cilix.shadow.client.util.*;
public class ConsultaCargaPanel extends JPanel {
JSplitPane jSplitPane1 = new JSplitPane();
JScrollPane treeScrollPane = new JScrollPane();
BorderLayout borderLayout1 = new BorderLayout();
DefaultMutableTreeNode top = new DefaultMutableTreeNode("Agendamentos");
DefaultMutableTreeNode parents[];
JTree cargaTree = new JTree(top);
Database ShadowDataBase = new Database();
QueryDataSet cargas = new QueryDataSet();
DBDisposeMonitor dBDisposeMonitor1 = new DBDisposeMonitor();
CargaInfoPanel cargaInfoPanel = new CargaInfoPanel(this);
public ConsultaCargaPanel() {
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}
private void jbInit() throws Exception {
this.setLayout(borderLayout1);
dBDisposeMonitor1.setDataAwareComponentContainer(this);
ShadowDataBase.setConnection(new
com.borland.dx.sql.dataset.ConnectionDescriptor("jdbc:oracle:thin:@1.2.3.4:1521:test",
"test", "test", false, "oracle.jdbc.driver.OracleDriver"));
cargas.setQuery(new
com.borland.dx.sql.dataset.QueryDescriptor(ShadowDataBase, "select *
from agenda_carga", null, true, Load.ALL));
createNodes();
cargaTree.addTreeSelectionListener(new
ConsultaCargaPanel_cargaTree_treeSelectionAdapter(this));
jSplitPane1.setDividerSize(5);
cargaTree.setShowsRootHandles(true);
this.add(jSplitPane1, BorderLayout.CENTER);
jSplitPane1.add(treeScrollPane, JSplitPane.LEFT);
treeScrollPane.getViewport().add(cargaTree, null);
jSplitPane1.add(cargaInfoPanel, JSplitPane.RIGHT);
jSplitPane1.setDividerLocation(150);
}
public void recreateTree(){
treeScrollPane.getViewport().remove(cargaTree);
top = new DefaultMutableTreeNode("Agendamentos");
parents = null;
cargaTree = new JTree(top);
try{
createNodes();
} catch (Exception ex){
ex.printStackTrace();
}
cargaTree.addTreeSelectionListener(new
ConsultaCargaPanel_cargaTree_treeSelectionAdapter(this));
treeScrollPane.getViewport().add(cargaTree, null);
cargaTree.setShowsRootHandles(true);
cargaTree.validate();
}
private void createNodes(){
parents = new DefaultMutableTreeNode[4];
for (int i = 0; i <= 3; i++){
try{
parents[i] = new DefaultMutableTreeNode(Periocidade.get(i));
top.add(parents[i]);
} catch (PeriocidadeException ex){
ex.printStackTrace();
}
}
try{
if (!cargas.isOpen()){
cargas.open();
}
cargas.refresh();
if (cargas.isEmpty()){
return;
}
cargas.first();
do{
int p = Periocidade.get(cargas.getString("periodicidade"));
java.sql.Timestamp t = cargas.getTimestamp("data");
int id = cargas.getBigDecimal("agenda_carga_id").intValue();
String date = t.toString();
IntegerValueMutableTreeNode n = new
IntegerValueMutableTreeNode(date, id, false);
parents[p].add(n);
} while(cargas.next());
} catch (com.borland.dx.dataset.DataSetException ds_ex){
ds_ex.printStackTrace();
}
}
void cargaTree_valueChanged(TreeSelectionEvent e) {
Object dtn = cargaTree.getLastSelectedPathComponent();
if (dtn instanceof IntegerValueMutableTreeNode){
IntegerValueMutableTreeNode tn = (IntegerValueMutableTreeNode)dtn;
TreePath pn = (TreePath)cargaTree.getLeadSelectionPath();
if (tn.isLeaf()){
int id = tn.getValue();
this.cargaInfoPanel.getInfo(id);
}
}
}
}
class ConsultaCargaPanel_cargaTree_treeSelectionAdapter implements
javax.swing.event.TreeSelectionListener {
ConsultaCargaPanel adaptee;
ConsultaCargaPanel_cargaTree_treeSelectionAdapter(ConsultaCargaPanel
adaptee) {
this.adaptee = adaptee;
}
public void valueChanged(TreeSelectionEvent e) {
adaptee.cargaTree_valueChanged(e);
}
}
Spuldaro Marcelo-Henriqu wrote:
> Boa tarde,
>
> Algu�m poderia me enviar algum exemplo que utilize JTree + splitPane!!??
>
> O meu problema � +- o seguinte: Quando seleciono uma das op��es do lado
> esquedo da splitPane, quero mostrar algumas informa��oes no lado direito.
> Empaquei na hora de saber como achar o �ndice ou algo parecido para saber a
> posi��o do registro. Ex:
> No lado esquerdo, tenho os nomes de pessoas (que podem ter folhos, ou seja,
> um novo NODE), e gostaria de que quando fosse clicado sobre ela (ou algum
> filho quando existir), todos os dados do selecionado, tipo Endere�o,
> Nascimento, ... etc..
>
> Obrigado.
>
>
> ------------------------------ LISTA SOUJAVA ----------------------------
> http://www.soujava.org.br - Sociedade de Usu�rios Java da Sucesu-SP
> d�vidas mais comuns: http://www.soujava.org.br/faq.htm
> regras da lista: http://www.soujava.org.br/regras.htm
> para sair da lista: envie email para [EMAIL PROTECTED]
> -------------------------------------------------------------------------
>
>
------------------------------ LISTA SOUJAVA ----------------------------
http://www.soujava.org.br - Sociedade de Usu�rios Java da Sucesu-SP
d�vidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED]
-------------------------------------------------------------------------