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 {
ImageRegistry imageRegistry;
+ SCLIssuesContentProvider issuesContentProvider = new SCLIssuesContentProvider();
+
public SCLIssuesView() {
super();
imageRegistry = Activator.getInstance().getImageRegistry();
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"));
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);
}
@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");
}
});
public void doubleClick(DoubleClickEvent event) {
IStructuredSelection selection = (IStructuredSelection)event.getSelection();
SCLIssuesTableEntry entry = (SCLIssuesTableEntry)selection.getFirstElement();
- OpenSCLDefinition.openDefinition(entry.moduleName, entry.error.location);
+ entry.openLocation();
}
});
}
public void setFocus() {
tableViewer.getControl().setFocus();
}
+
+ @Override
+ public void dispose() {
+ super.dispose();
+ issuesContentProvider.dispose();
+ }
}