Я строю таблицу и перебираю список "methodtraces2", чтобы установить каждую строку этой таблицы.Я бы хотел, чтобы в 4 столбцах содержался комбо-бокс.Более конкретно, я бы хотел, чтобы в столбцах «Callers», «Callees», «CallersExecuted» и «CalleesExecuted» в качестве содержимого ячеек были комбинированные списки.Каждая запись в выпадающем списке должна соответствовать поведению ToString элемента соответствующего списка.Каждая ячейка в столбце «Вызывающие» должна быть заполнена комбинированным списком, и каждый комбинированный список должен содержать все записи в вызывающих List<Method2Representation>
.Точно так же каждая ячейка в столбце «Callees» должна быть заполнена списком, и каждый комбинированный список должен содержать все записи в List<Method2Representation>
вызываемых.То же самое относится к "callersexecuted" и "calleesexecuted".Столбцы, для которых мне нужны комбинированные списки, обозначены как комментарии в коде ниже, списки, которые будут использоваться для заполнения этих комбинированных списков, также обозначены как комментарии в приведенном ниже коде:
shell = new Shell();
shell.setSize(1500, 1500);
shell.setText("SWT Application TEST");
table = new Table(shell, SWT.BORDER | SWT.FULL_SELECTION);
table.setBounds(0, 10, 2000, 2000);
table.setHeaderVisible(true);
table.setLinesVisible(true);
TableColumn tblclmnMethodID = new TableColumn(table, SWT.NONE);
tblclmnMethodID.setWidth(100);
tblclmnMethodID.setText("MethodID");
TableCursor tableCursor = new TableCursor(table, SWT.NONE);
TableColumn tblclmnMethodName = new TableColumn(table, SWT.NONE);
tblclmnMethodName.setWidth(100);
tblclmnMethodName.setText("MethodName");
TableColumn tblclmnRequirementID = new TableColumn(table, SWT.NONE);
tblclmnRequirementID.setWidth(153);
tblclmnRequirementID.setText("RequirementID");
TableColumn tblclmnRequirementName = new TableColumn(table, SWT.NONE);
tblclmnRequirementName.setWidth(150);
tblclmnRequirementName.setText("RequirementName");
TableColumn tblclmnClassID = new TableColumn(table, SWT.NONE);
tblclmnClassID.setWidth(100);
tblclmnClassID.setText("ClassID");
TableColumn tblclmnClassName = new TableColumn(table, SWT.NONE);
tblclmnClassName.setWidth(100);
tblclmnClassName.setText("ClassName");
TableColumn tblclmnGold = new TableColumn(table, SWT.NONE);
tblclmnGold.setWidth(100);
tblclmnGold.setText("Gold");
TableColumn tblclmnSubject = new TableColumn(table, SWT.NONE);
tblclmnSubject.setWidth(100);
tblclmnSubject.setText("Subject");
TableColumn tblclmnGoldpredictionCaller = new TableColumn(table, SWT.NONE);
tblclmnGoldpredictionCaller.setWidth(150);
tblclmnGoldpredictionCaller.setText("GoldPredictionCaller");
TableColumn tblclmnGoldpredictionCallee = new TableColumn(table, SWT.NONE);
tblclmnGoldpredictionCallee.setWidth(170);
tblclmnGoldpredictionCallee.setText("GoldPredictionCallee");
//COMBO BOX NEEDED FOR CALLERS RETRIEVED FROM
// List<Method2Representation> callers
TableColumn tblclmnCallers = new TableColumn(table, SWT.NONE);
tblclmnCallers.setWidth(100);
tblclmnCallers.setText("Callers");
//COMBO BOX NEEDED FOR CALLEES RETRIEVED FROM
// List<Method2Representation> callees
TableColumn tblclmnCallees = new TableColumn(table, SWT.NONE);
tblclmnCallees.setWidth(100);
tblclmnCallees.setText("Callees");
//COMBO BOX NEEDED FOR CALLERSEXECUTED RETRIEVED FROM
// List<Method2Representation> callersExecuted
TableColumn tblclmnCallersExecuted = new TableColumn(table, SWT.NONE);
tblclmnCallersExecuted.setWidth(150);
tblclmnCallersExecuted.setText("CallersExecuted");
//COMBO BOX NEEDED FOR CALLEESEXECUTED RETRIEVED FROM
// List<Method2Representation> calleesExecuted
TableColumn tblclmnCalleesExecuted = new TableColumn(table, SWT.NONE);
tblclmnCalleesExecuted.setWidth(150);
tblclmnCalleesExecuted.setText("CalleesExecuted");
for(MethodTrace2 meth: methodtraces2) {
TableItem item1 = new TableItem(table, SWT.NONE);
//callees combobox should populate tblclmnCallees
List<Method2Representation> callees = meth.getCalleesList();
//callers combobox should populate tblclmnCallers
List<Method2Representation> callers = meth.getCallersList();
//callersExecuted combobox should populate tblclmnCallersExecuted
List<Method2Representation> callersExecuted = meth.getCallersListExecuted();
//calleesExecuted combobox should populate tblclmnCalleesExecuted
List<Method2Representation> calleesExecuted = meth.getCalleesListExecuted();
item1.setText(new String[] { meth.MethodRepresentation.getMethodid(), meth.MethodRepresentation.getMethodname(), meth.Requirement.getID(), meth.Requirement.RequirementName, meth.ClassRepresentation.classid, meth.ClassRepresentation.classname, meth.gold
, meth.subject, meth.goldpredictionCaller, meth.goldpredictionCallee});
}
Вот мой класс Method2Representation,Я хотел бы, чтобы каждая строка в выпадающем списке была равна поведению toString класса Method2Representation.Вот класс ниже:
public class Method2Representation {
String methodid;
String methodname;
List<Requirement2> requirements;
public Method2Representation(String methodid, String methodname) {
super();
this.methodid = methodid;
this.methodname = methodname;
}
public Method2Representation() {
// TODO Auto-generated constructor stub
}
public String getMethodid() {
return methodid;
}
public void setMethodid(String methodid) {
this.methodid = methodid;
}
public String getMethodname() {
return methodname;
}
public void setMethodname(String methodname) {
this.methodname = methodname;
}
@Override
public String toString() {
return "Method2Representation [methodid=" + methodid + ", methodname=" + methodname + "]";
}
public List<Requirement2> getRequirements() {
return requirements;
}
public void setRequirements(List<Requirement2> requirements) {
this.requirements = requirements;
}
public Method2Representation(String methodid, String methodname, List<Requirement2> requirements) {
super();
this.methodid = methodid;
this.methodname = methodname;
this.requirements = requirements;
}
}