parent
4909cdd6bc
commit
cb83280a55
@ -7,12 +7,9 @@ import eva2.tools.SelectedTag;
|
||||
import eva2.tools.StringTools;
|
||||
import eva2.tools.Tag;
|
||||
import eva2.util.annotation.Description;
|
||||
import eva2.util.annotation.Parameter;
|
||||
|
||||
import java.beans.*;
|
||||
import java.lang.annotation.Annotation;
|
||||
import java.lang.reflect.Array;
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@ -985,30 +982,6 @@ public class BeanInspector {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Annotations on Fields are not retained when inherited. This method traverses the
|
||||
* superclass hierarchy and looks for an annotation on a given field name.
|
||||
*
|
||||
* @param name Name of the field in the class
|
||||
* @param c Class to start searching for the field with the annotation
|
||||
* @param annotation The annotation to look for
|
||||
* @param <T>
|
||||
* @return Returns the annotation of the field if found, null otherwise
|
||||
*/
|
||||
public static <T extends Annotation> T getAnnotationFromField(final String name, final Class c, final Class<T> annotation) {
|
||||
for (Field field : c.getDeclaredFields()) {
|
||||
if (field.isAnnotationPresent(annotation) && field.getName().equals(name)) {
|
||||
return field.getAnnotation(annotation);
|
||||
}
|
||||
}
|
||||
|
||||
if (!c.getSuperclass().equals(Object.class)) {
|
||||
return getAnnotationFromField(name, c.getSuperclass(), annotation);
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* This method simply looks for an appropriate tiptext
|
||||
*
|
||||
@ -1021,12 +994,6 @@ public class BeanInspector {
|
||||
String result = "";
|
||||
String tipName = name + "TipText";
|
||||
|
||||
// Find by annotation
|
||||
Parameter parameter = BeanInspector.getAnnotationFromField(name, target.getClass(), Parameter.class);
|
||||
if (parameter != null) {
|
||||
return parameter.description();
|
||||
}
|
||||
|
||||
// Find by deprecated TipText method
|
||||
for (MethodDescriptor method : methods) {
|
||||
String mname = method.getDisplayName();
|
||||
|
@ -1,10 +1,10 @@
|
||||
package eva2.gui;
|
||||
|
||||
import eva2.gui.editor.GenericObjectEditor;
|
||||
import eva2.optimization.strategies.InterfaceOptimizer;
|
||||
import eva2.tools.EVAHELP;
|
||||
import eva2.util.annotation.Description;
|
||||
import eva2.util.annotation.Hidden;
|
||||
import eva2.util.annotation.Parameter;
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.table.DefaultTableModel;
|
||||
@ -16,7 +16,6 @@ import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.awt.event.MouseEvent;
|
||||
import java.beans.*;
|
||||
import java.lang.annotation.Annotation;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.EventObject;
|
||||
@ -290,7 +289,13 @@ public final class PropertySheetPanel extends JPanel implements PropertyChangeLi
|
||||
continue;
|
||||
}
|
||||
|
||||
toolTips[itemIndex] = BeanInspector.getToolTipText(name, methodDescriptors, targetObject, stripToolTipToFirstPoint, tipTextLineLen);
|
||||
// If the property's setter has the Parameter annotation use the description as tipText
|
||||
if (propertyDescriptors[i].getWriteMethod() != null && propertyDescriptors[i].getWriteMethod().isAnnotationPresent(Parameter.class)) {
|
||||
Parameter parameter = propertyDescriptors[i].getWriteMethod().getAnnotation(Parameter.class);
|
||||
toolTips[itemIndex] = parameter.description();
|
||||
} else {
|
||||
toolTips[itemIndex] = BeanInspector.getToolTipText(name, methodDescriptors, targetObject);
|
||||
}
|
||||
itemIndex++;
|
||||
newView = getView(propertyEditors[i]);
|
||||
if (newView == null) {
|
||||
|
@ -7,6 +7,7 @@ import eva2.gui.PropertyEditorProvider;
|
||||
import eva2.gui.PropertySheetPanel;
|
||||
import eva2.gui.editor.GenericObjectEditor;
|
||||
import eva2.tools.EVAHELP;
|
||||
import eva2.util.annotation.Parameter;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
@ -265,7 +266,13 @@ public abstract class AbstractObjectEditor implements PropertyEditor, java.beans
|
||||
result.propertyType = propertyDescriptor.getPropertyType();
|
||||
result.name = propertyDescriptor.getDisplayName();
|
||||
result.label = new JLabel(result.name, SwingConstants.RIGHT);
|
||||
result.tipText = BeanInspector.getToolTipText(result.name, methods, target);
|
||||
// If the property's setter has the Parameter annotation use the description as tipText
|
||||
if (propertyDescriptor.getWriteMethod() != null && propertyDescriptor.getWriteMethod().isAnnotationPresent(Parameter.class)) {
|
||||
Parameter parameter = propertyDescriptor.getWriteMethod().getAnnotation(Parameter.class);
|
||||
result.tipText = parameter.description();
|
||||
} else {
|
||||
result.tipText = BeanInspector.getToolTipText(result.name, methods, target);
|
||||
}
|
||||
try {
|
||||
result.value = result.getMethod.invoke(target, args);
|
||||
result.editor = PropertyEditorProvider.findEditor(propertyDescriptor, result.value);
|
||||
|
Loading…
x
Reference in New Issue
Block a user