diff --git a/src/org/ntlab/traceDebugger/BreakPointLabelProvider.java b/src/org/ntlab/traceDebugger/BreakPointLabelProvider.java index 92bd644..f48b231 100644 --- a/src/org/ntlab/traceDebugger/BreakPointLabelProvider.java +++ b/src/org/ntlab/traceDebugger/BreakPointLabelProvider.java @@ -18,7 +18,7 @@ case 1: return String.valueOf(tbp.getLineNo()); case 2: - return tbp.getMethodSignature(); + return tbp.getReadableSignature(); } } return "�e�X�g�p�e�L�X�g" + columnIndex; diff --git a/src/org/ntlab/traceDebugger/BreakPointView.java b/src/org/ntlab/traceDebugger/BreakPointView.java index b22185e..e2e91e7 100644 --- a/src/org/ntlab/traceDebugger/BreakPointView.java +++ b/src/org/ntlab/traceDebugger/BreakPointView.java @@ -62,7 +62,7 @@ // �e�[�u���̃J�������쐬 String[] tableColumnTexts = {"Available", "Line No", "Signature"}; - int[] tableColumnWidth = {80, 80, 200}; + int[] tableColumnWidth = {80, 80, 500}; TableColumn[] tableColumns = new TableColumn[tableColumnTexts.length]; for (int i = 0; i < tableColumns.length; i++) { tableColumns[i] = new TableColumn(table, SWT.NULL); diff --git a/src/org/ntlab/traceDebugger/TraceBreakPoint.java b/src/org/ntlab/traceDebugger/TraceBreakPoint.java index 54e0ba5..00b4ddb 100644 --- a/src/org/ntlab/traceDebugger/TraceBreakPoint.java +++ b/src/org/ntlab/traceDebugger/TraceBreakPoint.java @@ -60,6 +60,32 @@ return methodSignature; } + public String getReadableSignature() { + MethodExecution methodExecution = methodExecutions.iterator().next(); + String signature = methodExecution.getSignature(); + String objectType = methodExecution.getThisClassName(); + objectType = objectType.substring(objectType.lastIndexOf(".") + 1); + boolean isConstructor = methodExecution.isConstructor(); + String declaringType = Trace.getDeclaringType(signature, isConstructor); + declaringType = declaringType.substring(declaringType.lastIndexOf(".") + 1); + String methodName = Trace.getMethodName(signature); + String args = "("; + String delimiter = ""; + String[] argArray = signature.split("\\(")[1].split(","); + for (String arg : argArray) { + args += (delimiter + arg.substring(arg.lastIndexOf(".") + 1)); + delimiter = ", "; + } + + StringBuilder sb = new StringBuilder(); + sb.append(objectType); + if (!declaringType.equals(objectType)) { + sb.append("(" + declaringType + ")"); + } + sb.append("." + methodName + args); + return sb.toString(); + } + public int getLineNo() { return lineNo; } diff --git a/src/org/ntlab/traceDebugger/TracePointsLabelProvider.java b/src/org/ntlab/traceDebugger/TracePointsLabelProvider.java index 4d0d377..17d420a 100644 --- a/src/org/ntlab/traceDebugger/TracePointsLabelProvider.java +++ b/src/org/ntlab/traceDebugger/TracePointsLabelProvider.java @@ -5,6 +5,8 @@ import org.eclipse.swt.graphics.Image; import org.eclipse.ui.ISharedImages; import org.eclipse.ui.PlatformUI; +import org.ntlab.traceAnalysisPlatform.tracer.trace.MethodExecution; +import org.ntlab.traceAnalysisPlatform.tracer.trace.Trace; import org.ntlab.traceAnalysisPlatform.tracer.trace.TracePoint; public class TracePointsLabelProvider extends LabelProvider implements ITableLabelProvider { @@ -17,7 +19,7 @@ case 0: return String.valueOf(tp.getStatement().getLineNo()); case 1: - return tp.getMethodExecution().getSignature(); + return getReadableSignature(tp.getMethodExecution()); } } return "�e�X�g�p�e�L�X�g" + columnIndex; @@ -32,4 +34,29 @@ public Image getImage(Object element) { return PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_ELEMENT); } + + private String getReadableSignature(MethodExecution methodExecution) { + String signature = methodExecution.getSignature(); + String objectType = methodExecution.getThisClassName(); + objectType = objectType.substring(objectType.lastIndexOf(".") + 1); + boolean isConstructor = methodExecution.isConstructor(); + String declaringType = Trace.getDeclaringType(signature, isConstructor); + declaringType = declaringType.substring(declaringType.lastIndexOf(".") + 1); + String methodName = Trace.getMethodName(signature); + String args = "("; + String delimiter = ""; + String[] argArray = signature.split("\\(")[1].split(","); + for (String arg : argArray) { + args += (delimiter + arg.substring(arg.lastIndexOf(".") + 1)); + delimiter = ", "; + } + + StringBuilder sb = new StringBuilder(); + sb.append(objectType); + if (!declaringType.equals(objectType)) { + sb.append("(" + declaringType + ")"); + } + sb.append("." + methodName + args); + return sb.toString(); + } } \ No newline at end of file