fixed field and method breakpoints display name

This commit is contained in:
Egor.Ushakov
2014-02-27 20:54:48 +04:00
parent d4f39df578
commit 3391b3bce4
4 changed files with 18 additions and 4 deletions
@@ -137,6 +137,10 @@ public class FieldBreakpoint extends BreakpointWithHighlighter<JavaFieldBreakpoi
PsiField field = PositionUtil.getPsiElementAt(getProject(), PsiField.class, getSourcePosition());
if(field != null) {
setFieldName(field.getName());
PsiClass psiClass = field.getContainingClass();
if (psiClass != null) {
getProperties().myClassName = psiClass.getQualifiedName();
}
myIsStatic = field.hasModifierProperty(PsiModifier.STATIC);
}
if (myIsStatic) {
@@ -78,8 +78,9 @@ public class JavaFieldBreakpointType extends JavaLineBreakpointTypeBase<JavaFiel
//if(!isValid()) {
// return DebuggerBundle.message("status.breakpoint.invalid");
//}
JavaFieldBreakpointProperties properties = breakpoint.getProperties();
final String className = "Class";//properties.getClassName();
final String className = properties.myClassName;
return className != null && !className.isEmpty() ? className + "." + properties.myFieldName : properties.myFieldName;
}
@@ -107,7 +108,7 @@ public class JavaFieldBreakpointType extends JavaLineBreakpointTypeBase<JavaFiel
final Ref<XLineBreakpoint> result = Ref.create(null);
AddFieldBreakpointDialog dialog = new AddFieldBreakpointDialog(project) {
protected boolean validateData() {
String className = getClassName();
final String className = getClassName();
if (className.length() == 0) {
Messages.showMessageDialog(project, DebuggerBundle.message("error.field.breakpoint.class.name.not.specified"),
DebuggerBundle.message("add.field.breakpoint.dialog.title"), Messages.getErrorIcon());
@@ -131,7 +132,7 @@ public class JavaFieldBreakpointType extends JavaLineBreakpointTypeBase<JavaFiel
@Override
public void run() {
XLineBreakpoint<JavaFieldBreakpointProperties> fieldBreakpoint = XDebuggerManager.getInstance(project).getBreakpointManager()
.addLineBreakpoint(JavaFieldBreakpointType.this, psiFile.getVirtualFile().getUrl(), line, new JavaFieldBreakpointProperties(fieldName));
.addLineBreakpoint(JavaFieldBreakpointType.this, psiFile.getVirtualFile().getUrl(), line, new JavaFieldBreakpointProperties(fieldName, className));
result.set(fieldBreakpoint);
}
});
@@ -118,6 +118,10 @@ public class MethodBreakpoint extends BreakpointWithHighlighter<JavaMethodBreakp
mySignature = descriptor.methodSignature;
myIsStatic = descriptor.isStatic;
}
PsiClass psiClass = getPsiClass();
if (psiClass != null) {
getProperties().myClassPattern = psiClass.getQualifiedName();
}
if (myIsStatic) {
setInstanceFiltersEnabled(false);
}
@@ -28,8 +28,12 @@ public class JavaFieldBreakpointProperties extends JavaBreakpointProperties<Java
@Attribute("field_name")
public String myFieldName;
public JavaFieldBreakpointProperties(String fieldName) {
@Attribute("class_name")
public String myClassName;
public JavaFieldBreakpointProperties(String fieldName, String className) {
myFieldName = fieldName;
myClassName = className;
}
public JavaFieldBreakpointProperties() {
@@ -48,5 +52,6 @@ public class JavaFieldBreakpointProperties extends JavaBreakpointProperties<Java
WATCH_MODIFICATION = state.WATCH_MODIFICATION;
WATCH_ACCESS = state.WATCH_ACCESS;
myFieldName = state.myFieldName;
myClassName = state.myClassName;
}
}