blob: 1421e53ef7eaf0d6d62a8c8b3ec84dc16a87e044 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2001, 2004 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.wst.xml.ui.internal.validation.core.errorinfo;
import java.util.List;
import org.eclipse.jface.viewers.ColumnWeightData;
import org.eclipse.jface.viewers.IStructuredContentProvider;
import org.eclipse.jface.viewers.ITableLabelProvider;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.jface.viewers.TableLayout;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.ui.ISharedImages;
import org.eclipse.wst.validation.internal.provisional.core.IMessage;
import org.eclipse.wst.xml.core.internal.validation.core.ValidationMessage;
import org.eclipse.wst.xml.ui.internal.XMLUIPlugin;
import org.eclipse.wst.xml.ui.internal.validation.XMLValidationUIMessages;
public class TaskListTableViewer extends TableViewer {
protected static final int COLUMN_ICON = 0;
protected static final int COLUMN_DESCRIPTION = 1;
protected static final int COLUMN_RESOURCE = 3;
protected static final int COLUMN_LOCATION = 2;
protected static final String LABEL_ICON = ""; //$NON-NLS-1$
protected static final String LABEL_DESCRIPTION = XMLValidationUIMessages.TaskListTableViewer_0;
protected static final String LABEL_RESOURCE = XMLValidationUIMessages.TaskListTableViewer_1;
protected static final String LABEL_LOCATION = XMLValidationUIMessages.TaskListTableViewer_2;
protected int visibleRows = -1;
protected int getColumnWidth(int column) {
int result = 0;
switch (column) {
case COLUMN_ICON : {
result = 1;
break;
}
case COLUMN_DESCRIPTION : {
result = 20;
break;
}
case COLUMN_RESOURCE : {
result = 3;
break;
}
case COLUMN_LOCATION : {
result = 3;
break;
}
}
return result;
}
public TaskListTableViewer(Composite parent, int visibleRows) {
this(parent, SWT.FULL_SELECTION | SWT.MULTI | SWT.BORDER, visibleRows);
}
public TaskListTableViewer(Composite parent, int style, int visibleRows) {
super(new Table(parent, style));
getTable().setLinesVisible(true);
Provider provider = new Provider();
setContentProvider(provider);
setLabelProvider(provider);
String[] columnPropertiesArray = {LABEL_ICON, LABEL_DESCRIPTION, LABEL_LOCATION};
setColumnProperties(columnPropertiesArray);
Table table = getTable();
table.setHeaderVisible(true);
table.setLayoutData(new GridData(GridData.FILL_BOTH));
TableLayout layout = new TableLayout();
for (int i = 0; i < columnPropertiesArray.length; i++) {
TableColumn column = new TableColumn(table, i);
column.setText(columnPropertiesArray[i]);
column.setAlignment(SWT.LEFT);
layout.addColumnData(new ColumnWeightData(getColumnWidth(i), true));
}
table.setLayout(layout);
this.visibleRows = visibleRows;
}
/**
* NamespaceInfoTableLabelProvider
*/
protected class Provider extends LabelProvider implements ITableLabelProvider, IStructuredContentProvider {
Viewer viewer;
Image errorImage;
Image warnImage;
public Provider() {
errorImage = XMLUIPlugin.getInstance().getImage(ISharedImages.IMG_OBJS_ERROR_TSK);
warnImage = XMLUIPlugin.getInstance().getImage(ISharedImages.IMG_OBJS_WARN_TSK);
}
public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
this.viewer = viewer;
}
public Object[] getElements(Object inputElement) {
List list = (List) viewer.getInput();
return list != null ? list.toArray() : null;
}
public Image getColumnImage(Object object, int columnIndex) {
ValidationMessage validationMessage = (ValidationMessage) object;
Image result = null;
if (columnIndex == 0) {
int severity = validationMessage.getSeverity();
if ((severity == IMessage.HIGH_SEVERITY) || (severity == IMessage.NORMAL_SEVERITY)) {
result = errorImage;
}
else {
result = warnImage;
}
}
return result;
}
public String getColumnText(Object object, int column) {
ValidationMessage errorMessage = (ValidationMessage) object;
String result = ""; //$NON-NLS-1$
switch (column) {
case COLUMN_DESCRIPTION : {
result = errorMessage.getMessage();
break;
}
case COLUMN_LOCATION : {
result = XMLValidationUIMessages.TaskListTableViewer_3 + errorMessage.getLineNumber();
break;
}
}
return result;
}
}
}