luolong
7/23/2011 - 6:28 PM

The gist of a generic wrapper around a value

The gist of a generic wrapper around a value

public final class Wrap<T> {
  public volatile T value;
  public Wrap(T initialValue) {
    value = initialValue;
  }
  
  public static final <T> Wrap<T> create() {
    return new Wrap<T>(null);
  }
  
  public static final <T> Wrap<T> create(T initialValue) {
    return new Wrap<T>(initialValue);
  }
}
private String getText(final Text text) {
   final String[] retValue = new String[1];
   text.getDisplay().syncExec(new Runnable() {
     public void run() {
       retValue[0] = text.getText();
     }
   });
   
   return retValue[0];
 }
private Control[] getChildren(final Composite composite) {
   final Wrap<Control[]> children = Wrap.create();
   composite.getDisplay().syncExec(new Runnable() {
     public void run() {
       children.value = composite.getChildren();
     }
   });
   return children.value;
 }