use of org.opt4j.core.config.Property in project opt4j by felixreimann.
the class PropertyPanel method fillComponentsMap.
protected void fillComponentsMap() {
for (final Property property : module.getProperties()) {
Component component = createComponent(property);
components.put(property, component);
}
}
use of org.opt4j.core.config.Property in project opt4j by felixreimann.
the class Opt4JModule method configure.
/*
* (non-Javadoc)
*
* @see com.google.inject.AbstractModule#configure()
*/
@SuppressWarnings({ "unchecked", "rawtypes" })
@Override
protected void configure() {
/**
* Configure injected constants.
*/
PropertyModule module = new PropertyModule(this);
for (Property property : module.getProperties()) {
for (Annotation annotation : property.getAnnotations()) {
if (annotation.annotationType().getAnnotation(BindingAnnotation.class) != null) {
Class<?> type = property.getType();
Object value = property.getValue();
ConstantBindingBuilder builder = bindConstant(annotation);
if (type.equals(Integer.TYPE)) {
builder.to((Integer) value);
} else if (type.equals(Long.TYPE)) {
builder.to((Long) value);
} else if (type.equals(Double.TYPE)) {
builder.to((Double) value);
} else if (type.equals(Float.TYPE)) {
builder.to((Float) value);
} else if (type.equals(Byte.TYPE)) {
builder.to((Byte) value);
} else if (type.equals(Short.TYPE)) {
builder.to((Short) value);
} else if (type.equals(Boolean.TYPE)) {
builder.to((Boolean) value);
} else if (type.equals(Character.TYPE)) {
builder.to((Character) value);
} else if (type.equals(String.class)) {
builder.to((String) value);
} else if (type.equals(Class.class)) {
builder.to((Class<?>) value);
} else if (value instanceof Enum<?>) {
builder.to((Enum) value);
} else {
String message = "Constant type not bindable: " + type + " of field " + property.getName() + " in module " + this.getClass().getName();
throw new ConfigurationException(Arrays.asList(new Message(message)));
}
}
}
}
multi(OptimizerStateListener.class);
multi(OptimizerIterationListener.class);
multi(IndividualStateListener.class);
config();
}
use of org.opt4j.core.config.Property in project opt4j by felixreimann.
the class PropertyPanel method updatePropertyPanel.
protected void updatePropertyPanel() {
panel.removeAll();
for (final Property property : module.getProperties()) {
if (property.isActive()) {
String name = property.getName();
int i = getIndent(property);
String s = "";
for (int j = 0; j < i; j++) {
s += " ";
}
if (i > 0) {
s = s.substring(2) + "\u21aa ";
}
JPanel labelPanel = new JPanel(new FlowLayout(FlowLayout.LEFT, 0, 0));
JLabel label = new JLabel(s + name);
label.setFocusable(false);
String tooltip = format.getTooltip(property);
if (tooltip != null) {
label.setToolTipText(tooltip);
}
labelPanel.add(label);
File file = property.getAnnotation(File.class);
if (file != null) {
JButton browse = new JButton(Icons.getIcon(Icons.FOLDER));
browse.setFocusable(false);
browse.setBorderPainted(false);
browse.setContentAreaFilled(false);
browse.setBorder(BorderFactory.createEmptyBorder(0, 4, 0, 0));
browse.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
selectFile(property);
}
});
browse.setCursor(new Cursor(Cursor.HAND_CURSOR));
browse.setToolTipText("Browse ...");
labelPanel.add(browse);
}
panel.add(labelPanel);
Component component = components.get(property);
panel.add(component);
}
}
if (module.getModule().getClass().isAnnotationPresent(Citation.class)) {
Citation citation = module.getModule().getClass().getAnnotation(Citation.class);
addReferenceRow(citation);
}
}
Aggregations