changeset 14:cf7413989c65

SafeRunnableDialog
author Frank Benoit <benoit@tionex.de>
date Mon, 31 Mar 2008 01:56:41 +0200
parents 6886832e1ed8
children db8940420ed8
files dwtx/jface/util/SafeRunnableDialog.d dwtx/jface/viewers/ColumnViewer.d dwtx/jface/viewers/TableViewer.d
diffstat 3 files changed, 34 insertions(+), 40 deletions(-) [+]
line wrap: on
line diff
--- a/dwtx/jface/util/SafeRunnableDialog.d	Mon Mar 31 01:41:52 2008 +0200
+++ b/dwtx/jface/util/SafeRunnableDialog.d	Mon Mar 31 01:56:41 2008 +0200
@@ -12,23 +12,8 @@
  *******************************************************************************/
 module dwtx.jface.util.SafeRunnableDialog;
 
-pragma(msg,"FIXME dwtx.jface.util.SafeRunnableDialog" );
-import dwt.widgets.Shell;
-import dwtx.core.runtime.IStatus;
-class SafeRunnableDialog{
-    this(IStatus status) ;
-    Shell getShell();
-    void create();
-    void open();
-    void addStatus(IStatus);
-    void refresh();
-}
-
-/++
-
-
-// import java.util.ArrayList;
-// import java.util.Collection;
+import tango.util.collection.model.Seq;
+import tango.util.collection.ArraySeq;
 
 import dwt.DWT;
 import dwt.graphics.Point;
@@ -50,6 +35,7 @@
 import dwtx.jface.viewers.Viewer;
 import dwtx.jface.viewers.ViewerCell;
 import dwtx.jface.viewers.ViewerComparator;
+import dwtx.jface.util.Util;
 
 import dwt.dwthelper.utils;
 
@@ -62,7 +48,7 @@
 
     private TableViewer statusListViewer;
 
-    private Collection statuses = new ArrayList();
+    private Seq!(IStatus) statuses;
 
     /**
      * Create a new instance of the receiver on a status.
@@ -74,25 +60,25 @@
 
         super(null, JFaceResources.getString("error"), status.getMessage(), //$NON-NLS-1$
                 status, IStatus.ERROR);
-
+        statuses = new ArraySeq!(IStatus);
         setShellStyle(DWT.DIALOG_TRIM | DWT.MODELESS | DWT.RESIZE | DWT.MIN
                 | getDefaultOrientation());
 
         setStatus(status);
-        statuses.add(status);
+        statuses.append(status);
 
         setBlockOnOpen(false);
 
         String reason = JFaceResources
                 .getString("SafeRunnableDialog_checkDetailsMessage"); //$NON-NLS-1$
         if (status.getException() !is null) {
-            reason = status.getException().getMessage() is null ? status
+            reason = status.getException().msg is null ? status
                     .getException().toString() : status.getException()
-                    .getMessage();
+                    .msg;
         }
         this.message = JFaceResources.format(JFaceResources
-                .getString("SafeRunnableDialog_reason"), new Object[] { //$NON-NLS-1$
-                status.getMessage(), reason });
+                .getString("SafeRunnableDialog_reason"), [ //$NON-NLS-1$
+                status.getMessage(), reason ]);
     }
 
     /**
@@ -104,7 +90,7 @@
         if (AUTOMATED_MODE)
             return;
 
-        createStatusList((Composite) dialogArea);
+        createStatusList(cast(Composite) dialogArea);
         updateEnablements();
     }
 
@@ -115,7 +101,7 @@
      */
     protected Control createDialogArea(Composite parent) {
         Control area = super.createDialogArea(parent);
-        createStatusList((Composite) area);
+        createStatusList(cast(Composite) area);
         return area;
     }
 
@@ -187,7 +173,7 @@
         statusListViewer.setContentProvider(getStatusContentProvider());
         statusListViewer.setLabelProvider(getStatusListLabelProvider());
         statusListViewer
-                .addSelectionChangedListener(new ISelectionChangedListener() {
+                .addSelectionChangedListener(new class ISelectionChangedListener {
                     public void selectionChanged(SelectionChangedEvent event) {
                         handleSelectionChange();
                     }
@@ -202,14 +188,14 @@
      * @return CellLabelProvider
      */
     private CellLabelProvider getStatusListLabelProvider() {
-        return new CellLabelProvider() {
+        return new class CellLabelProvider {
             /*
              * (non-Javadoc)
              *
              * @see dwtx.jface.viewers.CellLabelProvider#update(dwtx.jface.viewers.ViewerCell)
              */
             public void update(ViewerCell cell) {
-                cell.setText(((IStatus) cell.getElement()).getMessage());
+                cell.setText((cast(IStatus) cell.getElement()).getMessage());
 
             }
         };
@@ -221,14 +207,20 @@
      * @return IStructuredContentProvider
      */
     private IStructuredContentProvider getStatusContentProvider() {
-        return new IStructuredContentProvider() {
+        return new class IStructuredContentProvider {
             /*
              * (non-Javadoc)
              *
              * @see dwtx.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
              */
             public Object[] getElements(Object inputElement) {
-                return statuses.toArray();
+                Object[] res = new Object[ statuses.size() ];
+                int idx;
+                foreach( st; statuses ){
+                    res[idx] = cast(Object)st;
+                    idx++;
+                }
+                return res;
             }
 
             /*
@@ -266,7 +258,7 @@
      * @return ViewerSorter
      */
     private ViewerComparator getViewerComparator() {
-        return new ViewerComparator() {
+        return new class ViewerComparator {
             /*
              * (non-Javadoc)
              *
@@ -274,14 +266,15 @@
              *      java.lang.Object, java.lang.Object)
              */
             public int compare(Viewer testViewer, Object e1, Object e2) {
-                String message1 = ((IStatus) e1).getMessage();
-                String message2 = ((IStatus) e2).getMessage();
+                String message1 = (cast(IStatus) e1).getMessage();
+                String message2 = (cast(IStatus) e2).getMessage();
                 if (message1 is null)
                     return 1;
                 if (message2 is null)
                     return -1;
 
-                return message1.compareTo(message2);
+                //TODO: was compareTo, is this sufficient?
+                return message1 < message2;
             }
         };
     }
@@ -307,10 +300,10 @@
     private IStatus getSingleSelection() {
         ISelection rawSelection = statusListViewer.getSelection();
         if (rawSelection !is null
-                && rawSelection instanceof IStructuredSelection) {
-            IStructuredSelection selection = (IStructuredSelection) rawSelection;
+                && cast(IStructuredSelection)rawSelection ) {
+            IStructuredSelection selection = cast(IStructuredSelection) rawSelection;
             if (selection.size() is 1) {
-                return (IStatus) selection.getFirstElement();
+                return cast(IStatus) selection.getFirstElement();
             }
         }
         return null;
@@ -341,11 +334,10 @@
      * @param status
      */
     public void addStatus(IStatus status) {
-        statuses.add(status);
+        statuses.append(status);
         refresh();
 
     }
 
 
 }
-++/
\ No newline at end of file
--- a/dwtx/jface/viewers/ColumnViewer.d	Mon Mar 31 01:41:52 2008 +0200
+++ b/dwtx/jface/viewers/ColumnViewer.d	Mon Mar 31 01:56:41 2008 +0200
@@ -59,6 +59,7 @@
 public abstract class ColumnViewer : StructuredViewer {
 
     alias StructuredViewer.getLabelProvider getLabelProvider;
+    alias StructuredViewer.refresh refresh;
 
     private CellEditor[] cellEditors;
 
--- a/dwtx/jface/viewers/TableViewer.d	Mon Mar 31 01:41:52 2008 +0200
+++ b/dwtx/jface/viewers/TableViewer.d	Mon Mar 31 01:56:41 2008 +0200
@@ -72,6 +72,7 @@
 public class TableViewer : AbstractTableViewer {
 
     public alias AbstractTableViewer.preservingSelection preservingSelection;
+    public alias AbstractTableViewer.refresh refresh;
 
     /**
      * This viewer's table control.