Mega Code Archive
Bug Tracker JFace
/*******************************************************************************
* All Right Reserved. Copyright (c) 1998, 2004 Jackwind Li Guojie
*
* Created on Mar 5, 2004 7:38:59 PM by JACK $Id$
*
******************************************************************************/
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Vector;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.Separator;
import org.eclipse.jface.action.ToolBarManager;
import org.eclipse.jface.viewers.CellEditor;
import org.eclipse.jface.viewers.CheckboxCellEditor;
import org.eclipse.jface.viewers.ICellModifier;
import org.eclipse.jface.viewers.ILabelProviderListener;
import org.eclipse.jface.viewers.IStructuredContentProvider;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.ITableLabelProvider;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.viewers.TextCellEditor;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.jface.viewers.ViewerFilter;
import org.eclipse.jface.viewers.ViewerSorter;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Item;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.MessageBox;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.swt.widgets.TableItem;
import org.eclipse.swt.widgets.ToolBar;
public class BugTrackerJFace {
/**
* Represents a bug report.
*
*/
public static class Bug {
// For the sake of simplicity, all variables are public.
public String id;
public String summary;
public String assignedTo;
public boolean isSolved;
public Bug(String id, String summary, String assignedTo, boolean isSolved) {
this.id = id;
this.summary = summary;
this.assignedTo = assignedTo;
this.isSolved = isSolved;
}
public static Vector loadBugs(File file) {
Vector v = new Vector();
// Load bugs from a file.
DataInputStream in = null;
try {
if (!file.exists())
return v;
in = new DataInputStream(new FileInputStream(file));
while (true) {
String id = in.readUTF();
String summary = in.readUTF();
String assignedTo = in.readUTF();
boolean solved = in.readBoolean();
v.add(new Bug(id, summary, assignedTo, solved));
}
} catch (IOException ioe) {
// Ignore.
} finally {
try {
if (in != null)
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return v;
}
}
Display display = new Display();
Shell shell = new Shell(display);
Table table;
TableViewer tableViewer;
Vector bugs;
Image bugIcon = new Image(shell.getDisplay(), "rntsoft.gif");
String[] colNames = new String[]{"ID", "Summary", "Assigned to", "Solved"};
// Sorter.
class BugSorter extends ViewerSorter {
private String property;
private int propertyIndex;
public BugSorter(String sortByProperty) {
for(int i=0; i