Spring RCP (JRadioButton)

1 resposta
franklinfluzao

Olá amigos gostaria de saber como eu adiciono um RadioButton no meu formulário usando o Spring RCP. tenho um formulário com uma Combo e um TextField sendo que quero colocar dois Radios um para cada componente para habilitar e desabilitar esses componentes.

Eis aqui o meu código da classe que forma esse formulário:

public class TankForm extends AbstractForm {

private CadTankPresentationModel presentationModel;

public TankForm(CadTankPresentationModel model) {
	super(model);
	setId("model");
	presentationModel = model;
}

@Override
protected JComponent createFormControl() {
	SwingBindingFactory bindingFactory = (SwingBindingFactory) getBindingFactory();
	TableFormBuilder formBuilder = new TableFormBuilder(getBindingFactory());
	formBuilder.setLabelAttributes("colGrId=label colSpec=right:pref");

	List<Tank> tanks = presentationModel.getAllTanks();
	Binding binding = bindingFactory.createBoundComboBox("availableTank", tanks, "name");
	formBuilder.add(binding);
	formBuilder.row();
	formBuilder.add("selectedTank.name");
	formBuilder.row();

	return formBuilder.getForm();
}

}

Agradeço desde já a todos, e gostaria de uma grande ajuda de vcs nesse sentido Ok.

Franklin Fernandes

1 Resposta

franklinfluzao

Galera consegui eu mesmo solucionar o problema !

Adicionando os radios e eventos a ele, eis aqui o meu novo codigo:

public class TankForm extends AbstractForm {

private CadTankPresentationModel presentationModel;

private JRadioButton radio1, radio2;

private JTextField textField;

private JComboBox comboBox;

private RadioChangeListener1 radioChangeListener1;

private RadioChangeListener2 radioChangeListener2;

public TankForm(CadTankPresentationModel model) {
	super(model);
	setId("model");
	presentationModel = model;
	radioChangeListener1 = new RadioChangeListener1();
	radioChangeListener2 = new RadioChangeListener2();
}

@SuppressWarnings("deprecation")
@Override
protected JComponent createFormControl() {
	SwingBindingFactory bindingFactory = (SwingBindingFactory) getBindingFactory();
	TableFormBuilder formBuilder = new TableFormBuilder(getBindingFactory());
	formBuilder.setLabelAttributes("colGrId=label colSpec=right:pref");

	List<Tank> tanks = presentationModel.getAllTanks();
	radio1 = new JRadioButton();
	formBuilder.getLayoutBuilder().cell(radio1);
	comboBox = (JComboBox) formBuilder.add(bindingFactory.createBoundComboBox("availableTank", tanks, "name"))[1];
	formBuilder.row();
	radio2 = new JRadioButton();
	formBuilder.getLayoutBuilder().cell(radio2);
	textField = (JTextField) formBuilder.add(bindingFactory.createBoundFormattedTextField("selectedTank.name"))[1];
	formBuilder.row();

	ButtonGroup group = new ButtonGroup();
	group.add(radio1);
	group.add(radio2);

	if(presentationModel.getIsNewTank()) {
		radio1.setSelected(true);
		textField.setEnabled(false);
	}
	else {
		radio2.setSelected(true);
		comboBox.setEnabled(false);
	}

	radio1.addActionListener(radioChangeListener1);
	radio2.addActionListener(radioChangeListener2);

	return formBuilder.getForm();
}

private class RadioChangeListener1 implements ActionListener {

	public void actionPerformed(ActionEvent e) {
		if(radio1.isSelected()) {
			comboBox.setEnabled(true);
			textField.setEnabled(false);
		}
	}

}

private class RadioChangeListener2 implements ActionListener {

	public void actionPerformed(ActionEvent e) {
		if(radio2.isSelected()) {
			textField.setEnabled(true);
			comboBox.setEnabled(false);
		}
	}
}

}

De qualquer forma obrigado a todos, isso aqui já serve de aprendizado para alguns ok :smiley: ate+

Criado 11 de julho de 2007
Ultima resposta 12 de jul. de 2007
Respostas 1
Participantes 1