Java/SWT JFace Eclipse/JFace Registry

Материал из Java эксперт
Перейти к: навигация, поиск

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>