changeset 39:644f1334b451

fix anon classes
author Frank Benoit <benoit@tionex.de>
date Tue, 08 Apr 2008 22:05:42 +0200
parents c884a1ab6db3
children da5ad8eedf5d
files dwtx/core/commands/Command.d dwtx/core/commands/operations/DefaultOperationHistory.d dwtx/jface/action/ActionContributionItem.d dwtx/jface/action/ExternalActionManager.d dwtx/jface/action/StatusLine.d dwtx/jface/action/StatusLineManager.d dwtx/jface/action/SubContributionManager.d dwtx/jface/bindings/keys/KeySequenceText.d dwtx/jface/bindings/keys/formatting/AbstractKeyFormatter.d dwtx/jface/bindings/keys/formatting/EmacsKeyFormatter.d dwtx/jface/bindings/keys/formatting/NativeKeyFormatter.d dwtx/jface/dialogs/IconAndMessageDialog.d dwtx/jface/dialogs/MessageDialogWithToggle.d dwtx/jface/dialogs/TrayDialog.d dwtx/jface/fieldassist/ContentProposalAdapter.d dwtx/jface/fieldassist/DecoratedField.d dwtx/jface/layout/TreeColumnLayout.d dwtx/jface/operation/AccumulatingProgressMonitor.d dwtx/jface/preference/PreferenceDialog.d dwtx/jface/preference/PreferenceStore.d dwtx/jface/resource/FontRegistry.d dwtx/jface/resource/JFaceResources.d dwtx/jface/util/DelegatingDragAdapter.d dwtx/jface/util/DelegatingDropAdapter.d dwtx/jface/util/OpenStrategy.d dwtx/jface/util/SafeRunnable.d dwtx/jface/viewers/AbstractListViewer.d dwtx/jface/viewers/AbstractTableViewer.d dwtx/jface/viewers/AbstractTreeViewer.d dwtx/jface/viewers/BaseLabelProvider.d dwtx/jface/viewers/CellEditor.d dwtx/jface/viewers/CheckboxTableViewer.d dwtx/jface/viewers/CheckboxTreeViewer.d dwtx/jface/viewers/ColumnViewer.d dwtx/jface/viewers/ColumnViewerEditor.d dwtx/jface/viewers/FocusCellOwnerDrawHighlighter.d dwtx/jface/viewers/OwnerDrawLabelProvider.d dwtx/jface/viewers/StructuredViewer.d dwtx/jface/viewers/TableTreeViewer.d dwtx/jface/viewers/TableViewer.d dwtx/jface/viewers/TreeViewer.d dwtx/jface/viewers/Viewer.d dwtx/jface/viewers/ViewerColumn.d dwtx/jface/window/ApplicationWindow.d dwtx/jface/window/ToolTip.d dwtx/jface/wizard/WizardDialog.d
diffstat 46 files changed, 344 insertions(+), 322 deletions(-) [+]
line wrap: on
line diff
--- a/dwtx/core/commands/Command.d	Sun Apr 06 14:15:58 2008 +0200
+++ b/dwtx/core/commands/Command.d	Tue Apr 08 22:05:42 2008 +0200
@@ -537,9 +537,9 @@
         Object[] listeners = getListeners();
         for (int i = 0; i < listeners.length; i++) {
             ICommandListener listener = cast(ICommandListener) listeners[i];
-            SafeRunner.run(new class() ISafeRunnable {
+            SafeRunner.run(new class(listener) ISafeRunnable {
                 ICommandListener listener_;
-                this(){ this.listener_ = listener; }
+                this(ICommandListener a){ this.listener_ = a; }
                 public void handleException(Exception exception) {
                 }
 
--- a/dwtx/core/commands/operations/DefaultOperationHistory.d	Sun Apr 06 14:15:58 2008 +0200
+++ b/dwtx/core/commands/operations/DefaultOperationHistory.d	Tue Apr 08 22:05:42 2008 +0200
@@ -917,9 +917,9 @@
     private void notifyListeners(OperationHistoryEvent event) {
         if ( auto e = cast(IAdvancedUndoableOperation)event.getOperation()  ) {
             IAdvancedUndoableOperation advancedOp = e;
-            SafeRunner.run(new class() ISafeRunnable {
+            SafeRunner.run(new class(advancedOp) ISafeRunnable {
                 IAdvancedUndoableOperation advancedOp_;
-                this(){ advancedOp_=advancedOp;}
+                this(IAdvancedUndoableOperation a){ advancedOp_=a;}
                 public void handleException(Exception exception) {
                     if (DEBUG_OPERATION_HISTORY_UNEXPECTED) {
                         Tracing.printTrace(
@@ -936,9 +936,9 @@
         Object[] listenerArray = listeners.getListeners();
         for (int i = 0; i < listenerArray.length; i++) {
             IOperationHistoryListener listener = cast(IOperationHistoryListener) listenerArray[i];
-            SafeRunner.run(new class() ISafeRunnable {
+            SafeRunner.run(new class(listener) ISafeRunnable {
                 IOperationHistoryListener listener_;
-                this(){ listener_=listener; }
+                this(IOperationHistoryListener a){ listener_=a; }
                 public void handleException(Exception exception) {
                     if (DEBUG_OPERATION_HISTORY_UNEXPECTED) {
                         Tracing.printTrace(
--- a/dwtx/jface/action/ActionContributionItem.d	Sun Apr 06 14:15:58 2008 +0200
+++ b/dwtx/jface/action/ActionContributionItem.d	Tue Apr 08 22:05:42 2008 +0200
@@ -180,10 +180,10 @@
             if (display.getThread() is Thread.getThis()) {
                 update(e.getProperty());
             } else {
-                display.asyncExec(new class Runnable {
+                display.asyncExec(new class(e) Runnable {
                     PropertyChangeEvent e_;
-                    this(){
-                        e_=e;
+                    this(PropertyChangeEvent e__){
+                        e_=e__;
                     }
                     public void run() {
                         update(e_.getProperty());
--- a/dwtx/jface/action/ExternalActionManager.d	Sun Apr 06 14:15:58 2008 +0200
+++ b/dwtx/jface/action/ExternalActionManager.d	Tue Apr 08 22:05:42 2008 +0200
@@ -122,7 +122,8 @@
         private const Map!(String,IPropertyChangeListener) registeredListeners;
 
         static this(){
-            RESOURCE_BUNDLE = ResourceBundle.getBundle(ExternalActionManager.classinfo.name);
+            RESOURCE_BUNDLE = ResourceBundle.getBundle(
+                import("dwtx.jface.action.ExternalActionManager.properties"));
         }
         /**
          * Constructs a new instance of <code>CommandCallback</code> with the
@@ -307,12 +308,12 @@
 
                     // And remember this item so we don't log it again.
                     loggedCommandIds.add(commandId);
-                    command.addCommandListener(new class ICommandListener {
+                    command.addCommandListener(new class(command,commandId) ICommandListener {
                         Command command_;
                         String commandId_;
-                        this(){
-                            command_=command;
-                            commandId_=commandId;
+                        this(Command a,String b){
+                            command_=a;
+                            commandId_=b;
                         }
                         /*
                          * (non-Javadoc)
--- a/dwtx/jface/action/StatusLine.d	Sun Apr 06 14:15:58 2008 +0200
+++ b/dwtx/jface/action/StatusLine.d	Tue Apr 08 22:05:42 2008 +0200
@@ -116,8 +116,9 @@
     static this() {
         fgStopImage = ImageDescriptor.createFromFile(
             import("dwtx.jface.action.images.stop.gif"));//$NON-NLS-1$
-        JFaceResources.getImageRegistry().put(
-                "dwtx.jface.parts.StatusLine.stopImage", fgStopImage);//$NON-NLS-1$
+    //DWT Note: Not used in jface, but needs Display instance, which is not yet available.
+    //    JFaceResources.getImageRegistry().put(
+    //    "dwtx.jface.parts.StatusLine.stopImage", fgStopImage);//$NON-NLS-1$
     }
 
     /**
@@ -342,12 +343,12 @@
         bool animated = (totalWork is UNKNOWN || totalWork is 0);
         // make sure the progress bar is made visible while
         // the task is running. Fixes bug 32198 for the non-animated case.
-        Runnable timer = new class Runnable {
+        Runnable timer = new class(animated,timestamp) Runnable {
             bool animated_;
             long timestamp_;
-            this(){
-                animated_=animated;
-                timestamp_=timestamp;
+            this(bool a,long b){
+                animated_=a;
+                timestamp_=b;
             }
             public void run() {
                 this.outer.startTask(timestamp_, animated_);
--- a/dwtx/jface/action/StatusLineManager.d	Sun Apr 06 14:15:58 2008 +0200
+++ b/dwtx/jface/action/StatusLineManager.d	Tue Apr 08 22:05:42 2008 +0200
@@ -157,11 +157,11 @@
      */
     public IProgressMonitor getProgressMonitor() {
 
-        return new class IProgressMonitorWithBlocking {
+        return new class(getProgressMonitorDelegate()) IProgressMonitorWithBlocking {
 
             IProgressMonitor progressDelegate;
-            this(){
-                progressDelegate = getProgressMonitorDelegate();
+            this(IProgressMonitor a){
+                progressDelegate = a;
             }
 
             /* (non-Javadoc)
--- a/dwtx/jface/action/SubContributionManager.d	Sun Apr 06 14:15:58 2008 +0200
+++ b/dwtx/jface/action/SubContributionManager.d	Tue Apr 08 22:05:42 2008 +0200
@@ -251,10 +251,10 @@
      * @deprecated Use getItems(String value) instead.
      */
     public Enumeration items() {
-        return new class Enumeration {
+        return new class(mapItemToWrapper.elements()) Enumeration {
             Iterator!(Object) i;
-            this(){
-                i = mapItemToWrapper.elements();
+            this(Iterator!(Object) i__){
+                i = i__;
             }
             public bool hasMoreElements() {
                 return i.more();
--- a/dwtx/jface/bindings/keys/KeySequenceText.d	Sun Apr 06 14:15:58 2008 +0200
+++ b/dwtx/jface/bindings/keys/KeySequenceText.d	Tue Apr 08 22:05:42 2008 +0200
@@ -561,10 +561,10 @@
             Font font = new Font(cast(Device)text.getDisplay(),
                     "Lucida Grande", 13, DWT.NORMAL); //$NON-NLS-1$
             text.setFont(font);
-            text.addDisposeListener(new class DisposeListener {
+            text.addDisposeListener(new class(font) DisposeListener {
                 Font font_;
-                this(){
-                    font_=font;
+                this(Font a){
+                    font_=a;
                 }
                 public void widgetDisposed(DisposeEvent e) {
                     font_.dispose();
@@ -578,10 +578,10 @@
 
         TraversalFilterManager traversalFilterManager = new TraversalFilterManager();
         text.addFocusListener(traversalFilterManager);
-        text.addDisposeListener(new class DisposeListener {
+        text.addDisposeListener(new class(traversalFilterManager) DisposeListener {
             TraversalFilterManager traversalFilterManager_;
-            this(){
-                traversalFilterManager_=traversalFilterManager;
+            this(TraversalFilterManager a){
+                traversalFilterManager_=a;
             }
             public void widgetDisposed(DisposeEvent e) {
                 traversalFilterManager_.dispose();
--- a/dwtx/jface/bindings/keys/formatting/AbstractKeyFormatter.d	Sun Apr 06 14:15:58 2008 +0200
+++ b/dwtx/jface/bindings/keys/formatting/AbstractKeyFormatter.d	Tue Apr 08 22:05:42 2008 +0200
@@ -72,7 +72,8 @@
     private static const Set!(String) resourceBundleKeys;
 
     static this() {
-        RESOURCE_BUNDLE = ResourceBundle.getBundle(AbstractKeyFormatter.classinfo.name);
+        RESOURCE_BUNDLE = ResourceBundle.getBundle(
+            import("dwtx.jface.bindings.keys.formatting.AbstractKeyFormatter.properties"));
         resourceBundleKeys = new HashSet!(String);
         foreach( key; RESOURCE_BUNDLE.getKeys()){
             resourceBundleKeys.add(key);
--- a/dwtx/jface/bindings/keys/formatting/EmacsKeyFormatter.d	Sun Apr 06 14:15:58 2008 +0200
+++ b/dwtx/jface/bindings/keys/formatting/EmacsKeyFormatter.d	Tue Apr 08 22:05:42 2008 +0200
@@ -41,7 +41,8 @@
     private const static ResourceBundle RESOURCE_BUNDLE;
 
     static this(){
-        RESOURCE_BUNDLE = ResourceBundle.getBundle(EmacsKeyFormatter.classinfo.name);
+        RESOURCE_BUNDLE = ResourceBundle.getBundle(
+            import("dwtx.jface.bindings.keys.formatting.EmacsKeyFormatter.properties"));
     }
     /**
      * Formats an individual key into a human readable format. This converts the
--- a/dwtx/jface/bindings/keys/formatting/NativeKeyFormatter.d	Sun Apr 06 14:15:58 2008 +0200
+++ b/dwtx/jface/bindings/keys/formatting/NativeKeyFormatter.d	Tue Apr 08 22:05:42 2008 +0200
@@ -63,7 +63,8 @@
 
     static this() {
         CARBON_KEY_LOOK_UP = new HashMap!(String,String);
-        RESOURCE_BUNDLE = ResourceBundle.getBundle(NativeKeyFormatter.classinfo.name);
+        RESOURCE_BUNDLE = ResourceBundle.getBundle(
+            import("dwtx.jface.bindings.keys.formatting.NativeKeyFormatter.properties"));
 
         String carbonBackspace = "\u232B"; //$NON-NLS-1$
         CARBON_KEY_LOOK_UP.add(IKeyLookup.BS_NAME, carbonBackspace);
--- a/dwtx/jface/dialogs/IconAndMessageDialog.d	Sun Apr 06 14:15:58 2008 +0200
+++ b/dwtx/jface/dialogs/IconAndMessageDialog.d	Tue Apr 08 22:05:42 2008 +0200
@@ -133,10 +133,10 @@
      * @param image
      */
     private void addAccessibleListeners(Label label, Image image) {
-        label.getAccessible().addAccessibleListener(new class AccessibleAdapter {
+        label.getAccessible().addAccessibleListener(new class(image) AccessibleAdapter {
             Image image_;
-            this(){
-                image_ = image;
+            this(Image i){
+                image_ = i;
             }
             public void getName(AccessibleEvent event) {
                 String accessibleMessage = getAccessibleMessageFor(image_);
@@ -284,12 +284,12 @@
         }
 
         Image[1] image;
-        display.syncExec(new class Runnable {
+        display.syncExec(new class(display,imageID) Runnable {
             int imageID_;
             Display display_;
-            this(){
-                display_=display;
-                imageID_=imageID;
+            this(Display a,int b){
+                display_=a;
+                imageID_=b;
             }
             public void run() {
                 image[0] = display_.getSystemImage(imageID_);
--- a/dwtx/jface/dialogs/MessageDialogWithToggle.d	Sun Apr 06 14:15:58 2008 +0200
+++ b/dwtx/jface/dialogs/MessageDialogWithToggle.d	Tue Apr 08 22:05:42 2008 +0200
@@ -476,9 +476,9 @@
         button.setLayoutData(data);
         button.setFont(parent.getFont());
 
-        button.addSelectionListener(new class SelectionAdapter {
+        button.addSelectionListener(new class(button) SelectionAdapter {
             Button button_;
-            this(){ button_=button; }
+            this(Button b){ button_=b; }
             public void widgetSelected(SelectionEvent e) {
                 toggleState = button_.getSelection();
             }
--- a/dwtx/jface/dialogs/TrayDialog.d	Sun Apr 06 14:15:58 2008 +0200
+++ b/dwtx/jface/dialogs/TrayDialog.d	Tue Apr 08 22:05:42 2008 +0200
@@ -208,10 +208,10 @@
         toolBar.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_CENTER));
         Cursor cursor = new Cursor(parent.getDisplay(), DWT.CURSOR_HAND);
         toolBar.setCursor(cursor);
-        toolBar.addDisposeListener(new class DisposeListener {
+        toolBar.addDisposeListener(new class(cursor) DisposeListener {
             Cursor cursor_;
-            this(){
-                cursor_=cursor;
+            this(Cursor c){
+                cursor_=c;
             }
             public void widgetDisposed(DisposeEvent e) {
                 cursor_.dispose();
@@ -353,12 +353,12 @@
         int trayWidth = leftSeparator.computeSize(DWT.DEFAULT, clientArea.height).x + sash.computeSize(DWT.DEFAULT, clientArea.height).x + rightSeparator.computeSize(DWT.DEFAULT, clientArea.height).x + data.widthHint;
         Rectangle bounds = shell.getBounds();
         shell.setBounds(bounds.x - ((getDefaultOrientation() is DWT.RIGHT_TO_LEFT) ? trayWidth : 0), bounds.y, bounds.width + trayWidth, bounds.height);
-        sash.addListener(DWT.Selection, new class Listener {
+        sash.addListener(DWT.Selection, new class(shell, data) Listener {
             Shell shell_;
             GridData data_;
-            this(){
-                shell_=shell;
-                data_=data;
+            this(Shell a,GridData b){
+                shell_=a;
+                data_=b;
             }
             public void handleEvent(Event event) {
                 if (event.detail !is DWT.DRAG) {
--- a/dwtx/jface/fieldassist/ContentProposalAdapter.d	Sun Apr 06 14:15:58 2008 +0200
+++ b/dwtx/jface/fieldassist/ContentProposalAdapter.d	Tue Apr 08 22:05:42 2008 +0200
@@ -99,9 +99,9 @@
                      * scrollbar. Do this in an async since the focus is not
                      * actually switched when this event is received.
                      */
-                    e.display.asyncExec(new class Runnable {
+                    e.display.asyncExec(new class(e) Runnable {
                         Event e_;
-                        this(){ e_=e; }
+                        this(Event e__){ e_=e__; }
                         public void run() {
                             if (isValid()) {
                                 if (scrollbarClicked
@@ -1004,9 +1004,9 @@
          */
         private void asyncRecomputeProposals(String filterText) {
             if (isValid()) {
-                control.getDisplay().asyncExec(new class Runnable {
+                control.getDisplay().asyncExec(new class(filterText) Runnable {
                     String filterText_;
-                    this(){filterText_=filterText;}
+                    this(String a){filterText_=a;}
                     public void run() {
                         recordCursorPosition();
                         recomputeProposals(filterText_);
--- a/dwtx/jface/fieldassist/DecoratedField.d	Sun Apr 06 14:15:58 2008 +0200
+++ b/dwtx/jface/fieldassist/DecoratedField.d	Tue Apr 08 22:05:42 2008 +0200
@@ -416,10 +416,10 @@
         if (decDatas[i] is null) {
             formData = createFormDataForIndex(i, decoration.getImage());
             label = new Label(form, DWT.HORIZONTAL | DWT.VERTICAL | DWT.CENTER);
-            label.addMouseTrackListener(new class MouseTrackListener {
+            label.addMouseTrackListener(new class(label) MouseTrackListener {
                 Label label_;
-                this(){
-                    label_=label;
+                this(Label a){
+                    label_=a;
                 }
                 public void mouseHover(MouseEvent event) {
                     FieldDecorationData decData = cast(FieldDecorationData) event.widget
--- a/dwtx/jface/layout/TreeColumnLayout.d	Sun Apr 06 14:15:58 2008 +0200
+++ b/dwtx/jface/layout/TreeColumnLayout.d	Tue Apr 08 22:05:42 2008 +0200
@@ -57,10 +57,10 @@
         }
 
         private void update(Tree tree) {
-            tree.getDisplay().asyncExec(new class Runnable {
+            tree.getDisplay().asyncExec(new class(tree) Runnable {
                 Tree tree_;
-                this(){
-                    tree_=tree;
+                this(Tree a){
+                    tree_=a;
                 }
                 public void run() {
                     tree_.update();
--- a/dwtx/jface/operation/AccumulatingProgressMonitor.d	Sun Apr 06 14:15:58 2008 +0200
+++ b/dwtx/jface/operation/AccumulatingProgressMonitor.d	Tue Apr 08 22:05:42 2008 +0200
@@ -229,9 +229,9 @@
             return;
         }
 
-        display.asyncExec(new class Runnable {
+        display.asyncExec(new class(pm) Runnable {
             IProgressMonitor pm_;
-            this(){ pm_=pm; }
+            this(IProgressMonitor a){ pm_=a; }
             /* (non-Javadoc)
              * @see java.lang.Runnable#run()
              */
@@ -255,9 +255,9 @@
             return;
         }
 
-        display.asyncExec(new class Runnable {
+        display.asyncExec(new class(pm) Runnable {
             IProgressMonitor pm_;
-            this(){ pm_=pm; }
+            this(IProgressMonitor a){ pm_=a; }
             /* (non-Javadoc)
              * @see java.lang.Runnable#run()
              */
--- a/dwtx/jface/preference/PreferenceDialog.d	Sun Apr 06 14:15:58 2008 +0200
+++ b/dwtx/jface/preference/PreferenceDialog.d	Tue Apr 08 22:05:42 2008 +0200
@@ -269,13 +269,12 @@
             if (getPage(node) !is null) {
 
                 // this_: strange workaround for compiler error with dmd 1.028 in run()
-                SafeRunnable.run(new class(this) SafeRunnable {
-                    PreferenceDialog this_;
+                SafeRunnable.run(new class(this,node) SafeRunnable {
                     IPreferenceNode node_;
-                    this(PreferenceDialog outer_){
-                        node_=node;
-                        this_=outer_;
-                        auto p = this_.getPage( node );
+                    PreferenceDialog this_;
+                    this(PreferenceDialog pd, IPreferenceNode b){
+                        this_=pd;
+                        node_=b;
                     }
                     public void run() {
                         if (!this_.getPage(node_).performCancel()) {
@@ -383,10 +382,10 @@
      */
     protected Control createContents(Composite parent) {
         Control[1] control;
-        BusyIndicator.showWhile(getShell().getDisplay(), new class Runnable {
+        BusyIndicator.showWhile(getShell().getDisplay(), new class(parent) Runnable {
             Composite parent_;
-            this(){
-                parent_=parent;
+            this(Composite a){
+                parent_=a;
             }
             public void run() {
                 control[0] = callSuperCreateContents(parent);
@@ -493,14 +492,14 @@
         sash.setBackground(composite.getDisplay().getSystemColor(DWT.COLOR_LIST_BACKGROUND));
         // the following listener resizes the tree control based on sash deltas.
         // If necessary, it will also grow/shrink the dialog.
-        sash.addListener(DWT.Selection, new class Listener {
+        sash.addListener(DWT.Selection, new class(composite,rightControl,sash) Listener {
             Composite composite_;
             Control rightControl_;
             Sash sash_;
-            this(){
-                composite_=composite;
-                rightControl_=rightControl;
-                sash_=sash;
+            this(Composite a,Control b,Sash c){
+                composite_=a;
+                rightControl_=b;
+                sash_=c;
             }
             /*
              * (non-Javadoc)
@@ -710,10 +709,10 @@
      * @since 3.1
      */
     protected void addListeners(TreeViewer viewer) {
-        viewer.addPostSelectionChangedListener(new class ISelectionChangedListener {
+        viewer.addPostSelectionChangedListener(new class(viewer) ISelectionChangedListener {
             TreeViewer viewer_;
-            this(){
-                viewer_=viewer;
+            this(TreeViewer a){
+                viewer_=a;
             }
             private void handleError() {
                 try {
@@ -744,10 +743,10 @@
                 }
             }
         });
-        (cast(Tree) viewer.getControl()).addSelectionListener(new class SelectionAdapter {
+        (cast(Tree) viewer.getControl()).addSelectionListener(new class(viewer) SelectionAdapter {
             TreeViewer viewer_;
-            this(){
-                viewer_=viewer;
+            this(TreeViewer a){
+                viewer_=a;
             }
             public void widgetDefaultSelected(SelectionEvent event) {
                 ISelection selection = viewer_.getSelection();
@@ -1537,12 +1536,12 @@
     protected void firePageChanged(PageChangedEvent event) {
         Object[] listeners = pageChangedListeners.getListeners();
         for (int i = 0; i < listeners.length; i++) {
-            SafeRunnable.run(new class SafeRunnable {
+            SafeRunnable.run(new class(event,cast(IPageChangedListener) listeners[i]) SafeRunnable {
                 PageChangedEvent event_;
                 IPageChangedListener l;
-                this(){
-                    event_=event;
-                    l = cast(IPageChangedListener) listeners[i];
+                this(PageChangedEvent a,IPageChangedListener b){
+                    event_=a;
+                    l =b ;
                 }
                 public void run() {
                     l.pageChanged(event_);
--- a/dwtx/jface/preference/PreferenceStore.d	Sun Apr 06 14:15:58 2008 +0200
+++ b/dwtx/jface/preference/PreferenceStore.d	Tue Apr 08 22:05:42 2008 +0200
@@ -351,11 +351,11 @@
             final PropertyChangeEvent pe = new PropertyChangeEvent(this, name,
                     oldValue, newValue);
             for (int i = 0; i < finalListeners.length; ++i) {
-                SafeRunnable.run(new class(JFaceResources.getString("PreferenceStore.changeError")) SafeRunnable { //$NON-NLS-1$
+                SafeRunnable.run(new class(JFaceResources.getString("PreferenceStore.changeError"),cast(IPropertyChangeListener) finalListeners[i]) SafeRunnable { //$NON-NLS-1$
                     IPropertyChangeListener l;
-                    this(char[] s){
+                    this(char[] s,IPropertyChangeListener b){
                         super(s);
-                        l = cast(IPropertyChangeListener) finalListeners[i];
+                        l = b;
                     }
                     public void run() {
                         l.propertyChange(pe);
--- a/dwtx/jface/resource/FontRegistry.d	Sun Apr 06 14:15:58 2008 +0200
+++ b/dwtx/jface/resource/FontRegistry.d	Tue Apr 08 22:05:42 2008 +0200
@@ -328,36 +328,53 @@
      */
 
     private void readResourceBundle(String location) {
-        String osname = System.getProperty("os.name").trim(); //$NON-NLS-1$
-        String wsname = DWT.getPlatform();
-        osname = StringConverter.removeWhiteSpaces(osname).toLowerCase();
-        wsname = StringConverter.removeWhiteSpaces(wsname).toLowerCase();
-        String OSLocation = location;
-        String WSLocation = location;
+//         String osname = System.getProperty("os.name").trim(); //$NON-NLS-1$
+//         String wsname = DWT.getPlatform();
+//         osname = StringConverter.removeWhiteSpaces(osname).toLowerCase();
+//         wsname = StringConverter.removeWhiteSpaces(wsname).toLowerCase();
+//         String OSLocation = location;
+//         String WSLocation = location;
         ResourceBundle bundle = null;
-        if (osname !is null) {
-            OSLocation = location ~ "_" ~ osname; //$NON-NLS-1$
-            if (wsname !is null) {
-                WSLocation = OSLocation ~ "_" ~ wsname; //$NON-NLS-1$
-            }
+//         if (osname !is null) {
+//             OSLocation = location ~ "_" ~ osname; //$NON-NLS-1$
+//             if (wsname !is null) {
+//                 WSLocation = OSLocation ~ "_" ~ wsname; //$NON-NLS-1$
+//             }
+//         }
+        String errorLocation = "dwtx.jface.resource.FontRegistry properties";
+        const char[] prefix = "dwtx.jface.resource.jfacefonts_";
+        const char[] postfix = ".properties";
+        version( linux ){
+            char[] propdata = import( prefix ~ "linux_gtk" ~ postfix );
+        }
+        else version( Windows ){
+            char[] propdata;
+            static assert( false, "TODO: detect windows version" );
+            propdata = import( prefix ~ "windowsnt" ~ postfix );
+            propdata = import( prefix ~ "windows98" ~ postfix );
+            propdata = import( prefix ~ "windows2000" ~ postfix );
+            propdata = import( prefix ~ "windowsxp" ~ postfix );
+        }
+        else {
+            static assert( false, "unknown plattform" );
         }
 
-        try {
-            bundle = ResourceBundle.getBundle(WSLocation);
-            readResourceBundle(bundle, WSLocation);
-        } catch (MissingResourceException wsException) {
-            try {
-                bundle = ResourceBundle.getBundle(OSLocation);
-                readResourceBundle(bundle, WSLocation);
-            } catch (MissingResourceException osException) {
-                if (location !is OSLocation) {
-                    bundle = ResourceBundle.getBundle(location);
-                    readResourceBundle(bundle, WSLocation);
-                } else {
-                    throw osException;
-                }
-            }
-        }
+//         try {
+            bundle = ResourceBundle.getBundle(propdata);
+            readResourceBundle(bundle, errorLocation);
+//         } catch (MissingResourceException wsException) {
+//             try {
+//                 bundle = ResourceBundle.getBundle(OSLocation);
+//                 readResourceBundle(bundle, WSLocation);
+//             } catch (MissingResourceException osException) {
+//                 if (location !is OSLocation) {
+//                     bundle = ResourceBundle.getBundle(location);
+//                     readResourceBundle(bundle, WSLocation);
+//                 } else {
+//                     throw osException;
+//                 }
+//             }
+//         }
     }
 
     /**
@@ -699,23 +716,15 @@
         foreach( k,v; stringToFontRecord ){
             v.dispose();
         }
+        foreach( fnt; staleFonts.toArray ){
+            fnt.dispose();
+        }
 
-        disposeFonts(staleFonts);
         stringToFontRecord.clear();
         staleFonts.clear();
     }
 
     /**
-     * Dispose of all of the fonts in this iterator.
-     * @param iterator over Collection of Font
-     */
-    private void disposeFonts( Seq!(Font) list ) {
-        foreach( fnt; list ){
-            fnt.dispose();
-        }
-    }
-
-    /**
      * Hook a dispose listener on the DWT display.
      */
     private void hookDisplayDispose(Display display) {
--- a/dwtx/jface/resource/JFaceResources.d	Sun Apr 06 14:15:58 2008 +0200
+++ b/dwtx/jface/resource/JFaceResources.d	Tue Apr 08 22:05:42 2008 +0200
@@ -85,7 +85,7 @@
     private static void init_bundle(){
         if( bundle is null ){
             synchronized if( bundle is null ){
-                bundle = ResourceBundle.getBundle("dwtx.jface.messages"); //$NON-NLS-1$
+                bundle = ResourceBundle.getBundle("dwtx.jface.messages.properties"); //$NON-NLS-1$
             }
         }
     }
@@ -216,15 +216,15 @@
      */
     public static ResourceManager getResources(Display toQuery) {
         init_registries();
-        ResourceManager reg = cast(ResourceManager) registries.get(toQuery);
+        ResourceManager reg = registries.containsKey(toQuery) ? cast(ResourceManager) registries.get(toQuery) : null;
 
         if (reg is null) {
-            toQuery.disposeExec(new class Runnable {
+            toQuery.disposeExec(new class(toQuery) Runnable {
                 DeviceResourceManager mgr;
-                this(){
-                    mgr = new DeviceResourceManager(toQuery);
+                this(Display d){
+                    mgr = new DeviceResourceManager(d);
                     reg = mgr;
-                    registries.add(toQuery, reg);
+                    registries.add(d, reg);
                 }
                 /*
                  * (non-Javadoc)
--- a/dwtx/jface/util/DelegatingDragAdapter.d	Sun Apr 06 14:15:58 2008 +0200
+++ b/dwtx/jface/util/DelegatingDragAdapter.d	Tue Apr 08 22:05:42 2008 +0200
@@ -125,10 +125,10 @@
     public void dragFinished(DragSourceEvent event) {
         //      if (Policy.DEBUG_DRAG_DROP)
         //          System.out.println("Drag Finished: " + toString()); //$NON-NLS-1$
-        SafeRunnable.run(new class SafeRunnable {
+        SafeRunnable.run(new class(event) SafeRunnable {
             DragSourceEvent event_;
-            this(){
-                event_=event;
+            this(DragSourceEvent a){
+                event_=a;
             }
             public void run() {
                 if (currentListener !is null) {
@@ -161,10 +161,10 @@
 
         updateCurrentListener(event); // find a listener that can provide the given data type
         if (currentListener !is null) {
-            SafeRunnable.run(new class SafeRunnable {
+            SafeRunnable.run(new class(event) SafeRunnable {
                 DragSourceEvent event_;
-                this(){
-                    event_=event;
+                this(DragSourceEvent a){
+                    event_=a;
                 }
                 public void run() {
                     currentListener.dragSetData(event_);
@@ -195,12 +195,12 @@
             TransferDragSourceListener listener = cast(TransferDragSourceListener) listeners
                     .get(i);
             event.doit = true; // restore event.doit
-            SafeRunnable.run(new class SafeRunnable {
+            SafeRunnable.run(new class(event,listener) SafeRunnable {
                 TransferDragSourceListener listener_;
                 DragSourceEvent event_;
-                this(){
-                    event_=event;
-                    listener_=listener;
+                this(DragSourceEvent a,TransferDragSourceListener b){
+                    event_=a;
+                    listener_=b;
                 }
                 public void run() {
                     listener_.dragStart(event_);
--- a/dwtx/jface/util/DelegatingDropAdapter.d	Sun Apr 06 14:15:58 2008 +0200
+++ b/dwtx/jface/util/DelegatingDropAdapter.d	Tue Apr 08 22:05:42 2008 +0200
@@ -169,12 +169,12 @@
         // operation change. otherwise the new listener would get a dragEnter
         // followed by a dragOperationChanged with the exact same event.
         if (newListener !is null && newListener is oldListener) {
-            SafeRunnable.run(new class SafeRunnable {
+            SafeRunnable.run(new class(event,newListener) SafeRunnable {
                 DropTargetEvent event_;
                 TransferDropTargetListener newListener_;
-                this(){
-                    event_=event;
-                    newListener_=newListener;
+                this(DropTargetEvent a,TransferDropTargetListener b){
+                    event_=a;
+                    newListener_=b;
                 }
                 public void run() {
                     newListener_.dragOperationChanged(event_);
@@ -201,12 +201,12 @@
         // drag over. otherwise the new listener would get a dragEnter
         // followed by a dragOver with the exact same event.
         if (newListener !is null && newListener is oldListener) {
-            SafeRunnable.run(new class SafeRunnable {
+            SafeRunnable.run(new class(event,newListener) SafeRunnable {
                 DropTargetEvent event_;
                 TransferDropTargetListener newListener_;
-                this(){
-                    event_=event;
-                    newListener_=newListener;
+                this(DropTargetEvent a,TransferDropTargetListener b){
+                    event_=a;
+                    newListener_=b;
                 }
                 public void run() {
                     newListener_.dragOver(event_);
@@ -227,9 +227,9 @@
         //          System.out.println("Drop: " + toString()); //$NON-NLS-1$
         updateCurrentListener(event);
         if (getCurrentListener() !is null) {
-            SafeRunnable.run(new class SafeRunnable {
+            SafeRunnable.run(new class(event) SafeRunnable {
                 DropTargetEvent event_;
-                this(){ event_=event;}
+                this(DropTargetEvent a){ event_=a;}
                 public void run() {
                     getCurrentListener().drop(event_);
                 }
@@ -248,9 +248,9 @@
         //      if (Policy.DEBUG_DRAG_DROP)
         //          System.out.println("Drop Accept: " + toString()); //$NON-NLS-1$
         if (getCurrentListener() !is null) {
-            SafeRunnable.run(new class SafeRunnable {
+            SafeRunnable.run(new class(event) SafeRunnable {
                 DropTargetEvent event_;
-                this(){ event_=event;}
+                this(DropTargetEvent a){ event_=a;}
                 public void run() {
                     getCurrentListener().dropAccept(event_);
                 }
@@ -341,9 +341,9 @@
             return false;
         }
         if (currentListener !is null) {
-            SafeRunnable.run(new class SafeRunnable {
+            SafeRunnable.run(new class(event) SafeRunnable {
                 DropTargetEvent event_;
-                this(){ event_=event;}
+                this(DropTargetEvent a){ event_=a;}
                 public void run() {
                     currentListener.dragLeave(event_);
                 }
@@ -353,9 +353,9 @@
         //      if (Policy.DEBUG_DRAG_DROP)
         //          System.out.println("Current drop listener: " + listener); //$NON-NLS-1$
         if (currentListener !is null) {
-            SafeRunnable.run(new class SafeRunnable {
+            SafeRunnable.run(new class(event) SafeRunnable {
                 DropTargetEvent event_;
-                this(){ event_=event;}
+                this(DropTargetEvent a){ event_=a;}
                 public void run() {
                     currentListener.dragEnter(event_);
                 }
--- a/dwtx/jface/util/OpenStrategy.d	Sun Apr 06 14:15:58 2008 +0200
+++ b/dwtx/jface/util/OpenStrategy.d	Tue Apr 08 22:05:42 2008 +0200
@@ -276,7 +276,7 @@
 
     //Initialize event handler.
     private void initializeHandler( Display display_) {
-        eventHandler = new class() Listener {
+        eventHandler = new class(display_) Listener {
             Display display;
             bool timerStarted = false;
 
@@ -292,7 +292,7 @@
 
             bool arrowKeyDown = false;
 
-            int[] count;
+            int[1] count;
 
             long startTime;
 
@@ -300,10 +300,9 @@
 
             bool expandOccurred = false;
 
-            this(){
-                display = display_;
+            this(Display a){
+                display = a;
                 startTime = System.currentTimeMillis();
-                count = new int[1];
             }
 
             public void handleEvent( Event e) {
@@ -413,27 +412,37 @@
                     // want to delay any selection until the last arrowDown/Up occurs.  This
                     // handles the case where the user presses arrowDown/Up successively.
                     // We only want to open an editor for the last selected item.
-                    display.asyncExec(new class() Runnable {
-                        int id;
-                        Event e2;
-                        this(){ id = count[0]; e2 = e; }
+                    display.asyncExec(new class( count, e) Runnable {
+                        int id_;
+                        int[] count_;
+                        Event e_;
+                        this( int[] a, Event b){
+                            count_ = a;
+                            e_ = b;
+                            id_ = count_[0];
+                        }
                         public void run() {
                             if (arrowKeyDown) {
-                                display.timerExec(TIME, new class() Runnable {
-                                    int id2;
-                                    Event e3;
-                                    this(){ id2 = id; e3 = e2; }
+                                display.timerExec(TIME, new class(id_,count_,e_) Runnable {
+                                    int id__;
+                                    Event e__;
+                                    int[] count__;
+                                    this(int a, int[] b, Event c){
+                                        id__ = a;
+                                        count__ = b;
+                                        e__ = c;
+                                    }
                                     public void run() {
-                                        if (id2 is count[0]) {
-                                            firePostSelectionEvent(new SelectionEvent(e3));
+                                        if (id__ is count__[0]) {
+                                            firePostSelectionEvent(new SelectionEvent(e__));
                                             if ((CURRENT_METHOD & ARROW_KEYS_OPEN) !is 0) {
-                                                fireOpenEvent(new SelectionEvent(e3));
+                                                fireOpenEvent(new SelectionEvent(e__));
                                             }
                                         }
                                     }
                                 });
                             } else {
-                                firePostSelectionEvent(new SelectionEvent(e2));
+                                firePostSelectionEvent(new SelectionEvent(e_));
                             }
                         }
                     });
--- a/dwtx/jface/util/SafeRunnable.d	Sun Apr 06 14:15:58 2008 +0200
+++ b/dwtx/jface/util/SafeRunnable.d	Tue Apr 08 22:05:42 2008 +0200
@@ -76,10 +76,10 @@
             if (message is null)
                 message = JFaceResources.getString("SafeRunnable.errorMessage"); //$NON-NLS-1$
 
-            Runnable runnable = new class Runnable {
+            Runnable runnable = new class(new Status(IStatus.ERROR, Policy.JFACE, message,e)) Runnable {
                 IStatus status;
-                this(){
-                    status = new Status(IStatus.ERROR, Policy.JFACE, message,e);
+                this(IStatus a){
+                    status = a;
                 }
                 public void run() {
                     if (dialog is null || dialog.getShell().isDisposed()) {
--- a/dwtx/jface/viewers/AbstractListViewer.d	Sun Apr 06 14:15:58 2008 +0200
+++ b/dwtx/jface/viewers/AbstractListViewer.d	Tue Apr 08 22:05:42 2008 +0200
@@ -471,10 +471,10 @@
         if (elements.length is 0) {
             return;
         }
-        preservingSelection(new class Runnable {
+        preservingSelection(new class Runnable(elements) {
             Object[] elements_;
-            this(){
-                elements_= elements;
+            this(Object[] a){
+                elements_= a;
             }
             public void run() {
                 internalRemove(elements_);
--- a/dwtx/jface/viewers/AbstractTableViewer.d	Sun Apr 06 14:15:58 2008 +0200
+++ b/dwtx/jface/viewers/AbstractTableViewer.d	Tue Apr 08 22:05:42 2008 +0200
@@ -826,10 +826,10 @@
         if (elements.length is 0) {
             return;
         }
-        preservingSelection(new class Runnable {
+        preservingSelection(new class(elements) Runnable {
             Object[] elements_;
-            this(){
-                elements_=elements;
+            this(Object[] a){
+                elements_=a;
             }
             public void run() {
                 internalRemove(elements_);
--- a/dwtx/jface/viewers/AbstractTreeViewer.d	Sun Apr 06 14:15:58 2008 +0200
+++ b/dwtx/jface/viewers/AbstractTreeViewer.d	Tue Apr 08 22:05:42 2008 +0200
@@ -780,12 +780,12 @@
                 }
             }
 
-            BusyIndicator.showWhile(widget.getDisplay(), new class Runnable {
+            BusyIndicator.showWhile(widget.getDisplay(), new class(widget,tis) Runnable {
                 Widget widget_;
                 Item[] tis_;
-                this(){
-                    widget_ = widget;
-                    tis_=tis;
+                this( Widget a, Item[] b){
+                    widget_ = a;
+                    tis_=b;
                 }
                 public void run() {
                     // fix for PR 1FW89L7:
@@ -805,7 +805,7 @@
                     if (d !is null) {
                         Object parentElement = d;
                         Object[] children;
-                        if (isTreePathContentProvider() && null !is cast(Item)widget_ ) {
+                        if (isTreePathContentProvider() && (null !is cast(Item)widget_) ) {
                             TreePath path = getTreePathFromItem(cast(Item) widget_);
                             children = getSortedChildren(path);
                         } else {
@@ -1077,12 +1077,12 @@
     protected void fireTreeCollapsed(TreeExpansionEvent event) {
         Object[] listeners = treeListeners.getListeners();
         for (int i = 0; i < listeners.length; ++i) {
-            SafeRunnable.run(new class SafeRunnable {
+            SafeRunnable.run(new class(event,cast(ITreeViewerListener) listeners[i]) SafeRunnable {
                 TreeExpansionEvent event_;
                 ITreeViewerListener l;
-                this(){
-                    event_=event;
-                    l = cast(ITreeViewerListener) listeners[i];
+                this(TreeExpansionEvent a,ITreeViewerListener b){
+                    event_=a;
+                    l = b;
                 }
                 public void run() {
                     l.treeCollapsed(event_);
@@ -1102,12 +1102,12 @@
     protected void fireTreeExpanded(TreeExpansionEvent event) {
         Object[] listeners = treeListeners.getListeners();
         for (int i = 0; i < listeners.length; ++i) {
-            SafeRunnable.run(new class SafeRunnable {
+            SafeRunnable.run(new class( event, cast(ITreeViewerListener) listeners[i]) SafeRunnable {
                 TreeExpansionEvent event_;
                 ITreeViewerListener l;
-                this(){
-                    event_=event;
-                    l = cast(ITreeViewerListener) listeners[i];
+                this(TreeExpansionEvent a,ITreeViewerListener b){
+                    event_=a;
+                    l = b;
                 }
                 public void run() {
                     l.treeExpanded(event_);
@@ -2121,10 +2121,10 @@
         }
         if (isBusy())
             return;
-        preservingSelection(new class Runnable {
+        preservingSelection(new class(elementsOrTreePaths) Runnable {
             Object[] elementsOrTreePaths_;
-            this(){
-                elementsOrTreePaths_=elementsOrTreePaths;
+            this(Object[] a){
+                elementsOrTreePaths_=a;
             }
             public void run() {
                 internalRemove(elementsOrTreePaths_);
@@ -2157,12 +2157,12 @@
         }
         if (isBusy())
             return;
-        preservingSelection(new class Runnable {
+        preservingSelection(new class(parent,elements) Runnable {
             Object parent_;
             Object[] elements_;
-            this(){
-                parent_=parent;
-                elements_=elements;
+            this(Object a,Object[] b){
+                parent_=a;
+                elements_=b;
             }
             public void run() {
                 internalRemove(parent_, elements_);
@@ -2354,10 +2354,10 @@
         assertElementsNotNull(treePaths);
         if (isBusy())
             return;
-        IElementComparer treePathComparer = new class IElementComparer {
+        IElementComparer treePathComparer = new class(getComparer()) IElementComparer {
             IElementComparer comparer;
-            this(){
-                comparer = getComparer();
+            this(IElementComparer c){
+                comparer = c;
             }
             public int opEquals(Object a, Object b) {
                 return (cast(TreePath) a).opEquals((cast(TreePath) b), comparer);
--- a/dwtx/jface/viewers/BaseLabelProvider.d	Sun Apr 06 14:15:58 2008 +0200
+++ b/dwtx/jface/viewers/BaseLabelProvider.d	Tue Apr 08 22:05:42 2008 +0200
@@ -76,12 +76,12 @@
     protected void fireLabelProviderChanged(LabelProviderChangedEvent event) {
         Object[] listeners = getListeners();
         for (int i = 0; i < listeners.length; ++i) {
-            SafeRunnable.run(new class SafeRunnable {
+            SafeRunnable.run(new class(event,cast(ILabelProviderListener) listeners[i]) SafeRunnable {
                 LabelProviderChangedEvent event_;
                 ILabelProviderListener l;
-                this(){
-                    event_=event;
-                    l = cast(ILabelProviderListener) listeners[i];
+                this(LabelProviderChangedEvent a,ILabelProviderListener b){
+                    event_=a;
+                    l = b;
                 }
                 public void run() {
                     l.labelProviderChanged(event_);
--- a/dwtx/jface/viewers/CellEditor.d	Sun Apr 06 14:15:58 2008 +0200
+++ b/dwtx/jface/viewers/CellEditor.d	Tue Apr 08 22:05:42 2008 +0200
@@ -311,10 +311,10 @@
     protected void fireApplyEditorValue() {
         Object[] array = listeners.getListeners();
         for (int i = 0; i < array.length; i++) {
-            SafeRunnable.run(new class SafeRunnable {
+            SafeRunnable.run(new class(cast(ICellEditorListener) array[i]) SafeRunnable {
                 ICellEditorListener l;
-                this(){
-                    l = cast(ICellEditorListener) array[i];
+                this(ICellEditorListener a){
+                    l = a;
                 }
                 public void run() {
                     l.applyEditorValue();
@@ -332,10 +332,10 @@
     protected void fireCancelEditor() {
         Object[] array = listeners.getListeners();
         for (int i = 0; i < array.length; i++) {
-            SafeRunnable.run(new class SafeRunnable {
+            SafeRunnable.run(new class(cast(ICellEditorListener) array[i]) SafeRunnable {
                 ICellEditorListener l;
-                this(){
-                    l = cast(ICellEditorListener) array[i];
+                this(ICellEditorListener a){
+                    l = a;
                 }
                 public void run() {
                     l.cancelEditor();
@@ -355,14 +355,14 @@
             bool newValidState) {
         Object[] array = listeners.getListeners();
         for (int i = 0; i < array.length; i++) {
-            SafeRunnable.run(new class SafeRunnable {
+            SafeRunnable.run(new class(newValidState,oldValidState,cast(ICellEditorListener) array[i]) SafeRunnable {
                 bool newValidState_;
                 bool oldValidState_;
                 ICellEditorListener l;
-                this(){
-                    newValidState_=newValidState;
-                    oldValidState_=oldValidState;
-                    l = cast(ICellEditorListener) array[i];
+                this(bool a, bool b, ICellEditorListener c){
+                    newValidState_=a;
+                    oldValidState_=b;
+                    l = c;
                 }
                 public void run() {
                     l.editorValueChanged(oldValidState_, newValidState_);
@@ -380,12 +380,12 @@
     protected void fireEnablementChanged(String actionId) {
         Object[] array = propertyChangeListeners.getListeners();
         for (int i = 0; i < array.length; i++) {
-            SafeRunnable.run(new class SafeRunnable {
+            SafeRunnable.run(new class(actionId,cast(IPropertyChangeListener) array[i]) SafeRunnable {
                 String actionId_;
                 IPropertyChangeListener l;
-                this(){
-                    actionId_=actionId;
-                    l = cast(IPropertyChangeListener) array[i];
+                this(String a, IPropertyChangeListener b){
+                    actionId_=a;
+                    l = b;
                 }
                 public void run() {
                     l.propertyChange(new PropertyChangeEvent(this, actionId_,
--- a/dwtx/jface/viewers/CheckboxTableViewer.d	Sun Apr 06 14:15:58 2008 +0200
+++ b/dwtx/jface/viewers/CheckboxTableViewer.d	Tue Apr 08 22:05:42 2008 +0200
@@ -185,12 +185,12 @@
     private void fireCheckStateChanged(CheckStateChangedEvent event) {
         Object[] array = checkStateListeners.getListeners();
         for (int i = 0; i < array.length; i++) {
-            SafeRunnable.run(new class SafeRunnable {
+            SafeRunnable.run(new class(cast(ICheckStateListener) array[i], event) SafeRunnable {
                 ICheckStateListener l;
                 CheckStateChangedEvent event_;
-                this(){
-                    event_=event;
-                    l = cast(ICheckStateListener) array[i];
+                this(ICheckStateListener a,CheckStateChangedEvent b){
+                    event_=b;
+                    l = a;
                 }
                 public void run() {
                     l.checkStateChanged(event_);
--- a/dwtx/jface/viewers/CheckboxTreeViewer.d	Sun Apr 06 14:15:58 2008 +0200
+++ b/dwtx/jface/viewers/CheckboxTreeViewer.d	Tue Apr 08 22:05:42 2008 +0200
@@ -138,10 +138,10 @@
     protected void fireCheckStateChanged(CheckStateChangedEvent event) {
         Object[] array = checkStateListeners.getListeners();
         for (int i = 0; i < array.length; i++) {
-            SafeRunnable.run(new class SafeRunnable {
+            SafeRunnable.run(new class(cast(ICheckStateListener) array[i]) SafeRunnable {
                 ICheckStateListener l;
-                this(){
-                    l = cast(ICheckStateListener) array[i];
+                this(ICheckStateListener a){
+                    l = a;
                 }
                 public void run() {
                     l.checkStateChanged(event);
--- a/dwtx/jface/viewers/ColumnViewer.d	Sun Apr 06 14:15:58 2008 +0200
+++ b/dwtx/jface/viewers/ColumnViewer.d	Tue Apr 08 22:05:42 2008 +0200
@@ -252,11 +252,11 @@
      */
     private void setupEditingSupport(int columnIndex, ViewerColumn viewer) {
         if (getCellModifier() !is null) {
-            viewer.setEditingSupport(new class(this) EditingSupport {
+            viewer.setEditingSupport(new class(this,columnIndex) EditingSupport {
                 int columnIndex_;
-                this(ColumnViewer cv){
+                this(ColumnViewer cv, int ci){
                     super(cv);
-                    columnIndex_=columnIndex;
+                    columnIndex_=ci;
                 }
                 /*
                  * (non-Javadoc)
--- a/dwtx/jface/viewers/ColumnViewerEditor.d	Sun Apr 06 14:15:58 2008 +0200
+++ b/dwtx/jface/viewers/ColumnViewerEditor.d	Tue Apr 08 22:05:42 2008 +0200
@@ -211,10 +211,10 @@
                     control.addFocusListener(focusListener);
                 }
 
-                mouseListener = new class MouseAdapter {
+                mouseListener = new class(control) MouseAdapter {
                     Control control_;
-                    this(){
-                        control_=control;
+                    this(Control a){
+                        control_=a;
                     }
                     public void mouseDown(MouseEvent e) {
                         // time wrap?
--- a/dwtx/jface/viewers/FocusCellOwnerDrawHighlighter.d	Sun Apr 06 14:15:58 2008 +0200
+++ b/dwtx/jface/viewers/FocusCellOwnerDrawHighlighter.d	Tue Apr 08 22:05:42 2008 +0200
@@ -95,10 +95,10 @@
 
     private void hookListener(ColumnViewer viewer) {
 
-        Listener listener = new class Listener {
+        Listener listener = new class(viewer) Listener {
             ColumnViewer viewer_;
-            this(){
-                viewer_ = viewer;
+            this(ColumnViewer a){
+                viewer_ = a;
             }
             public void handleEvent(Event event) {
                 if ((event.detail & DWT.SELECTED) > 0) {
--- a/dwtx/jface/viewers/OwnerDrawLabelProvider.d	Sun Apr 06 14:15:58 2008 +0200
+++ b/dwtx/jface/viewers/OwnerDrawLabelProvider.d	Tue Apr 08 22:05:42 2008 +0200
@@ -45,10 +45,10 @@
      *            the viewer the owner draw is set up
      */
     public static void setUpOwnerDraw(ColumnViewer viewer) {
-        viewer.getControl().addListener(DWT.MeasureItem, new class Listener {
+        viewer.getControl().addListener(DWT.MeasureItem, new class(viewer) Listener {
             ColumnViewer viewer_;
-            this(){
-                viewer_=viewer;
+            this(ColumnViewer a){
+                viewer_=a;
             }
             /*
              * (non-Javadoc)
@@ -65,10 +65,10 @@
             }
         });
 
-        viewer.getControl().addListener(DWT.PaintItem, new class Listener {
+        viewer.getControl().addListener(DWT.PaintItem, new class(viewer) Listener {
             ColumnViewer viewer_;
-            this(){
-                viewer_=viewer;
+            this(ColumnViewer a){
+                viewer_=a;
             }
             /*
              * (non-Javadoc)
@@ -85,10 +85,10 @@
             }
         });
 
-        viewer.getControl().addListener(DWT.EraseItem, new class Listener {
+        viewer.getControl().addListener(DWT.EraseItem, new class(viewer) Listener {
             ColumnViewer viewer_;
-            this(){
-                viewer_=viewer;
+            this(ColumnViewer a){
+                viewer_=a;
             }
             /*
              * (non-Javadoc)
@@ -123,8 +123,8 @@
              * @return CellLabelProvider
              */
             private CellLabelProvider getLabelProvider(
-                    ColumnViewer viewer, Event event) {
-                return viewer.getViewerColumn(event.index).getLabelProvider();
+                    ColumnViewer cv, Event event) {
+                return cv.getViewerColumn(event.index).getLabelProvider();
             }
         });
     }
--- a/dwtx/jface/viewers/StructuredViewer.d	Sun Apr 06 14:15:58 2008 +0200
+++ b/dwtx/jface/viewers/StructuredViewer.d	Tue Apr 08 22:05:42 2008 +0200
@@ -829,10 +829,10 @@
     protected void fireDoubleClick(DoubleClickEvent event) {
         Object[] listeners = doubleClickListeners.getListeners();
         for (int i = 0; i < listeners.length; ++i) {
-            SafeRunnable.run(new class SafeRunnable {
+            SafeRunnable.run(new class(cast(IDoubleClickListener) listeners[i]) SafeRunnable {
                 IDoubleClickListener l;
-                this(){
-                    l = cast(IDoubleClickListener) listeners[i];
+                this(IDoubleClickListener a){
+                    l = a;
                 }
                 public void run() {
                     l.doubleClick(event);
@@ -856,10 +856,10 @@
     protected void fireOpen(OpenEvent event) {
         Object[] listeners = openListeners.getListeners();
         for (int i = 0; i < listeners.length; ++i) {
-            SafeRunnable.run(new class SafeRunnable {
+            SafeRunnable.run(new class(cast(IOpenListener) listeners[i]) SafeRunnable {
                 IOpenListener l;
-                this(){
-                    l = cast(IOpenListener) listeners[i];
+                this(IOpenListener a){
+                    l = a;
                 }
                 public void run() {
                     l.open(event);
@@ -884,10 +884,10 @@
     protected void firePostSelectionChanged(SelectionChangedEvent event) {
         Object[] listeners = postSelectionChangedListeners.getListeners();
         for (int i = 0; i < listeners.length; ++i) {
-            SafeRunnable.run(new class SafeRunnable {
+            SafeRunnable.run(new class(cast(ISelectionChangedListener) listeners[i]) SafeRunnable {
                 ISelectionChangedListener l;
-                this(){
-                    l = cast(ISelectionChangedListener) listeners[i];
+                this(ISelectionChangedListener a){
+                    l = a;
                 }
                 public void run() {
                     l.selectionChanged(event);
@@ -1487,10 +1487,10 @@
      *            the element
      */
     public void refresh(Object element) {
-        preservingSelection(new class Runnable {
+        preservingSelection(new class(element) Runnable {
             Object element_;
-            this(){
-                element_ = element;
+            this(Object a){
+                element_ = a;
             }
             public void run() {
                 internalRefresh(element_);
--- a/dwtx/jface/viewers/TableTreeViewer.d	Sun Apr 06 14:15:58 2008 +0200
+++ b/dwtx/jface/viewers/TableTreeViewer.d	Tue Apr 08 22:05:42 2008 +0200
@@ -167,10 +167,10 @@
                             };
                         }
                         control.addFocusListener(focusListener);
-                        mouseListener = new class MouseAdapter {
+                        mouseListener = new class(control) MouseAdapter {
                             Control control_;
-                            this(){
-                                control_=control;
+                            this(Control a){
+                                control_=a;
                             }
                             public void mouseDown(MouseEvent e) {
                                 // time wrap?
--- a/dwtx/jface/viewers/TableViewer.d	Sun Apr 06 14:15:58 2008 +0200
+++ b/dwtx/jface/viewers/TableViewer.d	Tue Apr 08 22:05:42 2008 +0200
@@ -348,12 +348,12 @@
             cancelEditing();
         }
 
-        preservingSelection(new class Runnable {
+        preservingSelection(new class(element,updateLabels) Runnable {
             Object element_;
             bool updateLabels_;
-            this(){
-                element_ = element;
-                updateLabels_ = updateLabels;
+            this(Object a,bool b){
+                element_ = a;
+                updateLabels_ = b;
             }
             public void run() {
                 internalRefresh(element_, updateLabels_);
--- a/dwtx/jface/viewers/TreeViewer.d	Sun Apr 06 14:15:58 2008 +0200
+++ b/dwtx/jface/viewers/TreeViewer.d	Tue Apr 08 22:05:42 2008 +0200
@@ -431,12 +431,12 @@
     public void setChildCount(Object elementOrTreePath, int count) {
         if (isBusy())
             return;
-        preservingSelection(new class Runnable {
+        preservingSelection(new class(elementOrTreePath,count) Runnable {
             Object elementOrTreePath_;
             int count_;
-            this(){
-                elementOrTreePath_=elementOrTreePath;
-                count_=count;
+            this(Object a,int b){
+                elementOrTreePath_=a;
+                count_=b;
             }
             public void run() {
                 if (internalIsInputOrEmptyPath(elementOrTreePath_)) {
@@ -772,10 +772,10 @@
             // because it is reused
             if (item.getData(VIRTUAL_DISPOSE_KEY) is null) {
                 item.setData(VIRTUAL_DISPOSE_KEY, new ValueWrapperBool(true));
-                item.addDisposeListener(new class DisposeListener {
+                item.addDisposeListener(new class(item) DisposeListener {
                     Widget item_;
-                    this(){
-                        item_=item;
+                    this(Widget a){
+                        item_=a;
                     }
                     public void widgetDisposed(DisposeEvent e) {
                         if (!treeIsDisposed) {
@@ -875,15 +875,15 @@
     public void remove(Object parentOrTreePath_, int index_) {
         if (isBusy())
             return;
-        preservingSelection(new class Runnable {
+        preservingSelection(new class((cast(TreeSelection) getSelection()).getPaths(),parentOrTreePath_,index_) Runnable {
             Seq!(TreePath) oldSelection;
             Object parentOrTreePath;
             int index;
-            this(){
-                parentOrTreePath=parentOrTreePath_;
-                index=index_;
+            this(TreePath[] a,Object b,int c){
+                parentOrTreePath=b;
+                index=c;
                 oldSelection = new LinkSeq!(TreePath);
-                foreach( p; (cast(TreeSelection) getSelection()).getPaths()){
+                foreach( p; a){
                     oldSelection.append( p );
                 }
             }
@@ -978,12 +978,12 @@
     public void setHasChildren(Object elementOrTreePath_, bool hasChildren_) {
         if (isBusy())
             return;
-        preservingSelection(new class Runnable {
+        preservingSelection(new class(elementOrTreePath_,hasChildren_) Runnable {
             Object elementOrTreePath;
             bool hasChildren;
-            this(){
-                elementOrTreePath=elementOrTreePath_;
-                hasChildren=hasChildren_;
+            this(Object a,bool b){
+                elementOrTreePath=a;
+                hasChildren=b;
             }
             public void run() {
                 if (internalIsInputOrEmptyPath(elementOrTreePath)) {
--- a/dwtx/jface/viewers/Viewer.d	Sun Apr 06 14:15:58 2008 +0200
+++ b/dwtx/jface/viewers/Viewer.d	Tue Apr 08 22:05:42 2008 +0200
@@ -167,12 +167,12 @@
     protected void fireSelectionChanged(SelectionChangedEvent event) {
         Object[] listeners = selectionChangedListeners.getListeners();
         for (int i = 0; i < listeners.length; ++i) {
-            SafeRunnable.run(new class SafeRunnable {
+            SafeRunnable.run(new class(event,cast(ISelectionChangedListener) listeners[i]) SafeRunnable {
                 ISelectionChangedListener l;
                 SelectionChangedEvent event_;
-                this(){
-                    event_=event;
-                    l = cast(ISelectionChangedListener) listeners[i];
+                this(SelectionChangedEvent a,ISelectionChangedListener b){
+                    event_=a;
+                    l = b;
                 }
                 public void run() {
                     l.selectionChanged(event_);
--- a/dwtx/jface/viewers/ViewerColumn.d	Sun Apr 06 14:15:58 2008 +0200
+++ b/dwtx/jface/viewers/ViewerColumn.d	Tue Apr 08 22:05:42 2008 +0200
@@ -61,20 +61,20 @@
      */
     protected this(ColumnViewer viewer, Widget columnOwner) {
         columnOwner.setData(ViewerColumn.COLUMN_VIEWER_KEY, this);
-        this.listener = new class ILabelProviderListener {
+        this.listener = new class(viewer) ILabelProviderListener {
             ColumnViewer viewer_;
-            this(){
-                viewer_= viewer;
+            this(ColumnViewer a){
+                viewer_= a;
             }
             public void labelProviderChanged(LabelProviderChangedEvent event) {
                 viewer_.handleLabelProviderChanged_package(event);
             }
 
         };
-        columnOwner.addDisposeListener(new class DisposeListener {
+        columnOwner.addDisposeListener(new class(viewer) DisposeListener {
             ColumnViewer viewer_;
-            this(){
-                viewer_= viewer;
+            this(ColumnViewer a){
+                viewer_= a;
             }
             public void widgetDisposed(DisposeEvent e) {
                 handleDispose(viewer_);
--- a/dwtx/jface/window/ApplicationWindow.d	Sun Apr 06 14:15:58 2008 +0200
+++ b/dwtx/jface/window/ApplicationWindow.d	Tue Apr 08 22:05:42 2008 +0200
@@ -758,16 +758,16 @@
                 }
                 mgr.setCancelEnabled(cancelable);
                 Exception[1] holder;
-                BusyIndicator.showWhile(display, new class Runnable {
+                BusyIndicator.showWhile(display, new class(fork,runnable,mgr,display) Runnable {
                     bool fork_;
                     IRunnableWithProgress runnable_;
                     StatusLineManager mgr_;
                     Display display_;
-                    this(){
-                        fork_=fork;
-                        runnable_=runnable;
-                        mgr_=mgr;
-                        display_=display;
+                    this(bool f,IRunnableWithProgress a,StatusLineManager b,Display c){
+                        fork_=f;
+                        runnable_=a;
+                        mgr_=b;
+                        display_=c;
                     }
                     public void run() {
                         try {
--- a/dwtx/jface/window/ToolTip.d	Sun Apr 06 14:15:58 2008 +0200
+++ b/dwtx/jface/window/ToolTip.d	Tue Apr 08 22:05:42 2008 +0200
@@ -430,10 +430,10 @@
         CURRENT_TOOLTIP = shell;
 
         if (popupDelay > 0) {
-            control.getDisplay().timerExec(popupDelay, new class Runnable {
+            control.getDisplay().timerExec(popupDelay, new class(shell,event) Runnable {
                 Shell shell_;
                 Event event_;
-                this(){ shell_=shell; event_=event; }
+                this(Shell a,Event b){ shell_=a; event_=b; }
                 public void run() {
                     toolTipShow(shell_, event_);
                 }
@@ -444,9 +444,9 @@
 
         if (hideDelay > 0) {
             control.getDisplay().timerExec(popupDelay + hideDelay,
-                    new class Runnable {
+                    new class(shell) Runnable {
                         Shell shell_;
-                        this(){ shell_=shell; }
+                        this(Shell a){ shell_=a; }
                         public void run() {
                             toolTipHide(shell, null);
                         }
@@ -553,9 +553,9 @@
         if (CURRENT_TOOLTIP !is null && !CURRENT_TOOLTIP.isDisposed()) {
             // Only change if value really changed
             if (hideOnMouseDown !is this.hideOnMouseDown) {
-                control.getDisplay().syncExec(new class Runnable {
+                control.getDisplay().syncExec(new class(hideOnMouseDown) Runnable {
                     bool hideOnMouseDown_;
-                    this(){ hideOnMouseDown_=hideOnMouseDown; }
+                    this(bool a){ hideOnMouseDown_=a; }
                     public void run() {
                         if (CURRENT_TOOLTIP !is null
                                 && CURRENT_TOOLTIP.isDisposed()) {
--- a/dwtx/jface/wizard/WizardDialog.d	Sun Apr 06 14:15:58 2008 +0200
+++ b/dwtx/jface/wizard/WizardDialog.d	Tue Apr 08 22:05:42 2008 +0200
@@ -1472,12 +1472,12 @@
     protected void firePageChanged(PageChangedEvent event) {
         Object[] listeners = pageChangedListeners.getListeners();
         for (int i = 0; i < listeners.length; ++i) {
-            SafeRunnable.run(new class SafeRunnable {
+            SafeRunnable.run(new class(cast(IPageChangedListener) listeners[i],event) SafeRunnable {
                 PageChangedEvent event_;
                 IPageChangedListener l;
-                this(){
-                    l = cast(IPageChangedListener) listeners[i];
-                    event_=event;
+                this(IPageChangedListener a, PageChangedEvent b){
+                    l = a;
+                    event_=b;
                 }
                 public void run() {
                     l.pageChanged(event_);
@@ -1525,12 +1525,12 @@
     protected void firePageChanging(PageChangingEvent event) {
         Object[] listeners = pageChangingListeners.getListeners();
         for (int i = 0; i < listeners.length; ++i) {
-            SafeRunnable.run(new class SafeRunnable {
+            SafeRunnable.run(new class(cast(IPageChangingListener) listeners[i],event) SafeRunnable {
                 PageChangingEvent event_;
                 IPageChangingListener l;
-                this(){
-                    l = cast(IPageChangingListener) listeners[i];
-                    event_=event;
+                this(IPageChangingListener a, PageChangingEvent b){
+                    l = a;
+                    event_=b;
                 }
                 public void run() {
                     l.handlePageChanging(event_);