]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scl.ui/src/org/simantics/scl/ui/issues/SCLIssuesView.java
SCL expressions to SCL Issues view
[simantics/platform.git] / bundles / org.simantics.scl.ui / src / org / simantics / scl / ui / issues / SCLIssuesView.java
index adc7def7902191c30158494ab8ba45e4e06ee556..10e2288e1b3d81b0a8cd639444b28e6b270bfa2b 100644 (file)
@@ -24,9 +24,10 @@ import org.eclipse.ui.IMemento;
 import org.eclipse.ui.IViewSite;
 import org.eclipse.ui.PartInitException;
 import org.eclipse.ui.part.ViewPart;
+import org.simantics.scl.compiler.errors.ErrorSeverity;
 import org.simantics.scl.osgi.SCLOsgi;
+import org.simantics.scl.osgi.issues.SCLIssuesTableEntry;
 import org.simantics.scl.ui.Activator;
-import org.simantics.scl.ui.editor2.OpenSCLDefinition;
 
 public class SCLIssuesView extends ViewPart {
 
@@ -40,6 +41,8 @@ public class SCLIssuesView extends ViewPart {
 
     ImageRegistry imageRegistry;
     
+    SCLIssuesContentProvider issuesContentProvider = new SCLIssuesContentProvider();
+    
     public SCLIssuesView() {
         super();
         imageRegistry = Activator.getInstance().getImageRegistry();
@@ -52,7 +55,8 @@ public class SCLIssuesView extends ViewPart {
         IAction action = new Action("Refresh") {
             @Override
             public void run() {
-                SCLOsgi.MODULE_REPOSITORY.getSourceRepository().checkUpdates();
+                tableViewer.setInput(SCLOsgi.MODULE_REPOSITORY);
+//                issuesContentProvider.refresh()
             }
         };
         action.setImageDescriptor(imageRegistry.getDescriptor("arrow_refresh"));
@@ -66,7 +70,7 @@ public class SCLIssuesView extends ViewPart {
         tableViewer = new TableViewer(parent,
                 SWT.FULL_SELECTION | SWT.SINGLE | SWT.V_SCROLL | SWT.H_SCROLL);
         ColumnViewerToolTipSupport.enableFor(tableViewer);
-        tableViewer.setContentProvider(new SCLIssuesContentProvider());
+        tableViewer.setContentProvider(issuesContentProvider);
 
         Table table = tableViewer.getTable();
         table.setHeaderVisible(true);
@@ -84,7 +88,12 @@ public class SCLIssuesView extends ViewPart {
             }
             @Override
             public Image getImage(Object element) {
-                return imageRegistry.get("error");
+                SCLIssuesTableEntry entry = (SCLIssuesTableEntry)element;
+                return entry.error.severity == ErrorSeverity.ERROR
+                        ? imageRegistry.get("error")
+                        : entry.error.severity == ErrorSeverity.IMPORT_ERROR
+                        ? imageRegistry.get("import_error")
+                        : imageRegistry.get("warning");
             }
         });
         
@@ -136,7 +145,7 @@ public class SCLIssuesView extends ViewPart {
             public void doubleClick(DoubleClickEvent event) {
                 IStructuredSelection selection = (IStructuredSelection)event.getSelection();
                 SCLIssuesTableEntry entry = (SCLIssuesTableEntry)selection.getFirstElement();
-                OpenSCLDefinition.openDefinition(entry.moduleName, entry.error.location);
+                entry.openLocation();
             }
         });
     }
@@ -165,5 +174,11 @@ public class SCLIssuesView extends ViewPart {
     public void setFocus() {
         tableViewer.getControl().setFocus();
     }
+    
+    @Override
+    public void dispose() {
+        super.dispose();
+        issuesContentProvider.dispose();
+    }
 
 }