I've made a widget that uses enums for some of its properties. For example, left, centered or right alignment of text in a grid cell.
Any plans to support enums as Designer properties in the future?[/img]
Moderators: Konstantin.Scheglov, gnebling, Alexander.Mitin, jwren, Eric Clayberg
Slot Head wrote:Yes, I should've said real enum's that were intorduced in Java 5.0 (aka 1.5).
That would be really cool if SWT-Designer supported them.
package model.swt.frames.enums;
public enum ButtonEnum {
REFRESH, COMMIT, ROLLBACK, ADD, DELETE
}
package model.swt.frames;
import java.util.EnumSet;
import model.swt.frames.enums.ButtonEnum;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
public class ButtonEnumComposite extends Composite {
////////////////////////////////////////////////////////////////////////////
//
// Constructor
//
////////////////////////////////////////////////////////////////////////////
public ButtonEnumComposite(Composite parent, int style) {
super(parent, style);
setLayout(new GridLayout());
}
////////////////////////////////////////////////////////////////////////////
//
// Subclassing support
//
////////////////////////////////////////////////////////////////////////////
@Override
public void dispose() {
super.dispose();
}
@Override
protected void checkSubclass() {
// Disable the check that prevents subclassing of SWT components
}
////////////////////////////////////////////////////////////////////////////
//
// Simple enum property
//
////////////////////////////////////////////////////////////////////////////
private ButtonEnum m_activeButton = ButtonEnum.ADD;
public ButtonEnum getActiveButton() {
return m_activeButton;
}
public void setActiveButton(ButtonEnum activeButton) {
m_activeButton = activeButton;
System.out.println("setActiveButton: " + activeButton);
}
////////////////////////////////////////////////////////////////////////////
//
// EnumSet property
//
////////////////////////////////////////////////////////////////////////////
private EnumSet<ButtonEnum> m_activeButtons = EnumSet.of(ButtonEnum.COMMIT, ButtonEnum.ROLLBACK);
public EnumSet<ButtonEnum> getActiveButtons() {
return m_activeButtons;
}
public void setActiveButtons(EnumSet<ButtonEnum> activeButtons) {
m_activeButtons = activeButtons;
System.out.println("setActiveButtons: " + activeButtons);
}
}
package model.swt.frames;
import static model.swt.frames.enums.ButtonEnum.COMMIT;
import java.util.EnumSet;
import model.swt.frames.enums.ButtonEnum;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
public class ButtonEnumCompositeTest {
private ButtonEnumComposite m_ButtonEnumComposite;
private ButtonEnumComposite m_TableComposite;
protected Shell shell;
/**
* Launch the application
* @param args
*/
public static void main(String[] args) {
try {
ButtonEnumCompositeTest window = new ButtonEnumCompositeTest();
window.open();
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* Open the window
*/
public void open() {
final Display display = Display.getDefault();
createContents();
shell.open();
shell.layout();
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
}
/**
* Create contents of the window
*/
protected void createContents() {
shell = new Shell();
shell.setSize(750, 600);
shell.setText("SWT Application");
shell.setLayout(new GridLayout());
{
m_TableComposite = new ButtonEnumComposite(shell, SWT.NONE);
m_TableComposite.setLayoutData(new GridData(GridData.FILL_BOTH));
}
{
m_ButtonEnumComposite = new ButtonEnumComposite(shell, SWT.NONE);
m_ButtonEnumComposite.setActiveButton(ButtonEnum.REFRESH);
m_ButtonEnumComposite.setActiveButtons(EnumSet.of(ButtonEnum.REFRESH, ButtonEnum.ADD, ButtonEnum.DELETE));
m_ButtonEnumComposite.setLayoutData(new GridData(GridData.FILL_BOTH));
}
{
m_ButtonEnumComposite = new ButtonEnumComposite(shell, SWT.NONE);
m_ButtonEnumComposite.setActiveButtons(EnumSet.of(ButtonEnum.ADD, ButtonEnum.DELETE));
m_ButtonEnumComposite.setActiveButton(COMMIT);
m_ButtonEnumComposite.setLayoutData(new GridData(GridData.FILL_BOTH));
}
}
}
Users browsing this forum: No registered users and 1 guest