Grid não habilita no superwaba

1 resposta
M

Boa tarde pessoal, seguinte, já procurei em tudo quanto é canto e documentação, mas não consigo encontrar meu erro, o fato é que simplesmente meu grid não fica habilitado, ele não deixa eu selecionar nenhuma linha… segue abaixo meu código:

import superwaba.ext.xplat.sql.pdb.pdbx.*;
import superwaba.ext.xplat.ui.db.GridEvent;
import waba.fx.Color;
import waba.fx.Font;
import waba.fx.Graphics;
import waba.fx.Rect;
import waba.sys.Vm;
import waba.ui.*;

public class ConsultaCliente extends Container implements IConstants {
	private Container panelPrincipal = new Container();
	private ComboBox  cbxCampo       = new ComboBox(CAMPOS_CLIENTE);
	private Edit      edtCampo       = new Edit();
	private Button    btnCampo       = new Button("Pesquisar");
	
	private Grid grdConsulta;
	
	private Container panelBottom = new Container();
	
	private Button btnClose = new Button("Fechar");
	
	private ClienteDao cliente;
	
	private Container principal;

	public ConsultaCliente(Container tela) {
		principal = tela;
	}
	
	public void onStart() {
		Rect r;
		
		panelPrincipal.setRect(0, 20, width, height - 50);
		panelPrincipal.setBackColor(Color.defaultBackColor);
		panelPrincipal.repaint();

		panelPrincipal.add(cbxCampo, LEFT, AFTER);
		r = cbxCampo.getRect();
		cbxCampo.setRect(r.x, r.y, 80, r.height);
		
		edtCampo.setMode(Edit.NORMAL);
		edtCampo.setCapitaliseMode(Edit.ALL_UPPER);
		panelPrincipal.add(edtCampo, AFTER, SAME);
		r = edtCampo.getRect();
		edtCampo.setRect(r.x, r.y, 81, r.height);
		panelPrincipal.add(btnCampo, AFTER, SAME);
		r = btnCampo.getRect();
		btnCampo.setRect(r.x, r.y, 55, 20);
		add(panelPrincipal);		
		
		String []captions = {"Código", "Razão Social", "Nome Fantasia"};
		int size[] = {50, 70, 70};
		int align[] = {LEFT, LEFT, LEFT};
		grdConsulta = new Grid(captions, size, align, false);

		grdConsulta.firstStripeColor = Color.WHITE;
		grdConsulta.secondStripeColor = new Color(192, 192, 192);
		grdConsulta.verticalLineStyle = Grid.VERT_NONE;
		grdConsulta.setRect(0, r.y + 45, width, 250);
		add(grdConsulta);
		panelBottom.setRect(0, height - 30, width, 30);
        
        btnClose.setRect(140, 5, 90, 20);
        
        panelBottom.add(btnClose);
        
        add(panelPrincipal);
        add(panelBottom);
	}
	
	public void onEvent(Event event) {
		if (event.type == ControlEvent.PRESSED) {
			if (event.target == btnClose) {
				clear();
				MainWindow.getMainWindow().swap(principal);
			} else if (event.target == btnCampo) {
				load();
			} else if (event.target == grdConsulta) {
                String []item = grdConsulta.getSelectedItem();
                Vm.debug(item[0]);
			}
		} 
		
		if (event.type == waba.ui.GridEvent.SELECTED_EVENT) {
		    GridEvent gd = (GridEvent) event;
		    Vm.debug("coluna:"+gd.col);
		    Vm.debug("linha:"+gd.row);
		  }
	}

	public void onPaint(Graphics g) {
		super.onPaint(g);
        g.setBackColor(Color.WHITE);
        g.fillRect(0, 0, this.width, this.height);
        Font font = new Font("SytemNarrow", Font.BOLD, 10);
        g.setForeColor(Color.BLACK);
        g.setFont(font);
        g.drawText("SVP-Coraves", 0, 0);
        
        g.setBackColor(new Color(192, 192, 192));
        g.fillRect(0, 20, width, height - 50);
	}
	
	private void load() {
		String    campo = "";
		String    valor = "";
		ResultSet rst   = null;
		
		if (cliente == null) {
			cliente = new ClienteDao();
		}
		
		if (cbxCampo.getSelectedIndex() >= 0) {
			campo = (String) cbxCampo.getSelectedItem();
			if (campo.equals("Código")) {
				campo = "cad_codigo";
			} else if (campo.equals("Razão Social")) {
				campo = "cad_razao";
			} else if (campo.equals("Nome Fantasia")) {
				campo = "cad_fantasia";
			}
			
			if (edtCampo.getText().trim().length() > 0) {
				valor = edtCampo.getText().trim();
			}
		}
		
		rst = cliente.loadClientes(campo, valor);
		if (rst != null) {
			if (rst.first()) {
				grdConsulta.setItems(rst.getStrings(-1, true, false));
			} else {
				grdConsulta.clear();
			}
			rst.close();
		}
	}
	
	private void clear() {
		cbxCampo.select(-1);
		edtCampo.setText("");
		grdConsulta.clear();
	}
}

1 Resposta

B

Cara eu to usando o grid do waba.ui.grid e funciona perfeitamente. talvez seja isso.

Criado 30 de maio de 2006
Ultima resposta 29 de set. de 2006
Respostas 1
Participantes 2