|
Re: Multi Line RadioButton and Checkbox [message #1153216 is a reply to message #1140130] |
Thu, 24 October 2013 13:01 |
Matthias Nick Messages: 197 Registered: August 2013 |
Senior Member |
|
|
Okay, I solved by creating a new custom widget. The Button is only used for the "Radio" symbol and the label is capable of displaying multiline text.
public class MultilineButton extends Composite {
Button btn;
Label label;
public MultilineButton(Composite parent, int style) {
super(parent, style);
createContent(this, style);
createLayout();
}
protected void createContent(Composite parent, int style) {
this.btn = new ButtonEx(parent, style);
this.label = new Label(parent, 0);
}
protected void createLayout() {
GridLayout containerLayout = new GridLayout(2, false);
containerLayout.horizontalSpacing = 5; //space between button and label
containerLayout.marginHeight = 0;
containerLayout.marginWidth = 0;
containerLayout.verticalSpacing = 0;
GridData labelData = new GridData(SWT.FILL, SWT.FILL, false, false);
labelData.verticalIndent = 3;
label.setLayoutData(labelData);
GridData buttonData = new GridData(SWT.FILL, SWT.TOP, false, false);
buttonData.verticalIndent = 3;
btn.setLayoutData(buttonData);
setLayout(containerLayout);
}
public void setText(String text) {
label.setText(text);
}
@Override
public void setFont(org.eclipse.swt.graphics.Font font) {
label.setFont(font);
btn.setFont(font);
}
@Override
public void setForeground(org.eclipse.swt.graphics.Color color) {
super.setForeground(color);
label.setForeground(color);
btn.setForeground(color);
}
@Override
public void setBackground(org.eclipse.swt.graphics.Color color) {
super.setBackground(color);
label.setBackground(color);
btn.setBackground(color);
}
@Override
public void removeListener(int eventType, Listener listener) {
super.removeListener(eventType, listener);
btn.removeListener(eventType, listener);
label.removeListener(eventType, listener);
}
@Override
public Object getLayoutData() {
return super.getLayoutData();
}
public void setSelection(boolean selected) {
btn.setSelection(selected);
}
public boolean getSelection() {
return btn.getSelection();
}
@Override
public void addListener(int eventType, Listener listener) {
super.addListener(eventType, listener);
btn.addListener(eventType, listener);
label.addListener(eventType, listener);
}
}
|
|
|
Powered by
FUDForum. Page generated in 0.01824 seconds