Java/SWT JFace Eclipse/JFace Registry
ImageRegistry Demo
<source lang="java">
import org.eclipse.jface.resource.*; import org.eclipse.jface.window.ApplicationWindow; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.*; import org.eclipse.swt.widgets.*; /**
* This class tests ImageRegistry */
public class ImageRegistryTest extends ApplicationWindow {
// Keys for the registry private static final String ONE = "one"; private static final String TWO = "two"; private static final String THREE = "three"; /** * ImageRegistryTest constructor */ public ImageRegistryTest() { super(null); } /** * Runs the application */ public void run() { setBlockOnOpen(true); open(); Display.getCurrent().dispose(); } /** * Creates the window"s contents * * @param parent the parent composite * @return Control */ protected Control createContents(Composite parent) { Composite composite = new Composite(parent, SWT.NONE); composite.setLayout(new FillLayout()); // Put the images in the registry ImageRegistry ir = new ImageRegistry(); ir.put(ONE, ImageDescriptor.createFromFile(ImageRegistryTest.class, "jexp.gif")); ir.put(TWO, ImageDescriptor.createFromFile(ImageRegistryTest.class, "jexp.gif")); ir.put(THREE, ImageDescriptor.createFromFile(ImageRegistryTest.class, "jexp.gif")); // Create the labels and add the images Label label = new Label(composite, SWT.NONE); label.setImage(ir.get(ONE)); label = new Label(composite, SWT.NONE); label.setImage(ir.get(TWO)); label = new Label(composite, SWT.NONE); label.setImage(ir.get(THREE)); getShell().pack(); return composite; } /** * The application entry point * * @param args the command line arguments */ public static void main(String[] args) { new ImageRegistryTest().run(); }
}
</source>
Various JFace registries
<source lang="java">
import org.eclipse.jface.resource.*; import org.eclipse.jface.util.*; import org.eclipse.jface.window.ApplicationWindow; import org.eclipse.swt.SWT; import org.eclipse.swt.events.*; import org.eclipse.swt.graphics.*; import org.eclipse.swt.layout.*; import org.eclipse.swt.widgets.*; /**
* This class tests the various JFace registries */
public class RegistryTest extends ApplicationWindow implements
IPropertyChangeListener { // Keys for the registries private static final String FOREGROUND = "foreground"; private static final String BACKGROUND = "background"; private static final String FONT = "font"; // The label to display the colors and fonts private Label label; // The color registry private static ColorRegistry CR; // The font registry private static FontRegistry FR; /** * RegistryTest constructor */ public RegistryTest() { super(null); } /** * Runs the application */ public void run() { setBlockOnOpen(true); open(); Display.getCurrent().dispose(); } /** * Creates the window"s contents * * @param parent the parent composite * @return Control */ protected Control createContents(Composite parent) { Composite composite = new Composite(parent, SWT.NONE); composite.setLayout(new FillLayout(SWT.VERTICAL)); // Set up the registries CR = new ColorRegistry(); CR.addListener(this); FR = new FontRegistry(); FR.addListener(this); // Create the label label = new Label(composite, SWT.CENTER); label.setText("Hello from JFace"); // Create the randomize button Button button = new Button(composite, SWT.PUSH); button.setText("Randomize"); button.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent event) { CR.put(FOREGROUND, new RGB((int) (Math.random() * 255), (int) (Math .random() * 255), (int) (Math.random() * 255))); CR.put(BACKGROUND, new RGB((int) (Math.random() * 255), (int) (Math .random() * 255), (int) (Math.random() * 255))); FontData fontData = new FontData("Times New Roman", (int) (Math.random() * 72), SWT.BOLD); FR.put(FONT, new FontData[] { fontData}); } }); return composite; } /** * Called when any property changes * * @param event the event */ public void propertyChange(PropertyChangeEvent event) { // Properties have changed; set into label if (CR.hasValueFor(FOREGROUND)) label.setForeground(CR.get(FOREGROUND)); if (CR.hasValueFor(BACKGROUND)) label.setBackground(CR.get(BACKGROUND)); if (FR.hasValueFor(FONT)) label.setFont(FR.get(FONT)); getShell().pack(); } /** * The application entry point * * @param args the command line arguments */ public static void main(String[] args) { new RegistryTest().run(); }
}
</source>