SelectableValues can now be annotated with kind of data (e.g.
SINGLEVALUE, DOMAINOPTIONS, et al), and these annotations are passed to remote via moduleprop.search
This commit is contained in:
parent
5ef8615a54
commit
c5c575c095
@ -5,7 +5,10 @@ import java.util.List;
|
|||||||
|
|
||||||
public class DefaultSelectableValues {
|
public class DefaultSelectableValues {
|
||||||
|
|
||||||
public List<SelectableValue> get() {
|
public KindOfSelectableValue getkind() {
|
||||||
return new ArrayList<SelectableValue>();
|
return KindOfSelectableValue.UNSPECIFIED;
|
||||||
}
|
}
|
||||||
|
public List<SelectableValue> get() {
|
||||||
|
return new ArrayList<SelectableValue>();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,5 @@
|
|||||||
|
package de.hsadmin.core.model;
|
||||||
|
|
||||||
|
public enum KindOfSelectableValue {
|
||||||
|
UNSPECIFIED , DOMAINOPTIONS, SINGLESTRING
|
||||||
|
}
|
@ -5,10 +5,16 @@ import java.util.List;
|
|||||||
|
|
||||||
import de.hsadmin.core.model.BooleanListValue;
|
import de.hsadmin.core.model.BooleanListValue;
|
||||||
import de.hsadmin.core.model.DefaultSelectableValues;
|
import de.hsadmin.core.model.DefaultSelectableValues;
|
||||||
|
import de.hsadmin.core.model.KindOfSelectableValue;
|
||||||
import de.hsadmin.core.model.SelectableValue;
|
import de.hsadmin.core.model.SelectableValue;
|
||||||
|
|
||||||
public class DomainOptionValues extends DefaultSelectableValues {
|
public class DomainOptionValues extends DefaultSelectableValues {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public KindOfSelectableValue getkind() {
|
||||||
|
return KindOfSelectableValue.DOMAINOPTIONS;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<SelectableValue> get() {
|
public List<SelectableValue> get() {
|
||||||
ArrayList<SelectableValue> list = new ArrayList<SelectableValue>();
|
ArrayList<SelectableValue> list = new ArrayList<SelectableValue>();
|
||||||
|
@ -11,10 +11,12 @@ import java.util.Properties;
|
|||||||
import de.hsadmin.core.model.AbstractEntity;
|
import de.hsadmin.core.model.AbstractEntity;
|
||||||
import de.hsadmin.core.model.AnnFieldIO;
|
import de.hsadmin.core.model.AnnFieldIO;
|
||||||
import de.hsadmin.core.model.AuthenticationException;
|
import de.hsadmin.core.model.AuthenticationException;
|
||||||
|
import de.hsadmin.core.model.DefaultSelectableValues;
|
||||||
import de.hsadmin.core.model.HSAdminException;
|
import de.hsadmin.core.model.HSAdminException;
|
||||||
import de.hsadmin.core.model.ReadWriteAccess;
|
import de.hsadmin.core.model.ReadWriteAccess;
|
||||||
import de.hsadmin.core.model.SelectableValue;
|
import de.hsadmin.core.model.SelectableValue;
|
||||||
import de.hsadmin.core.model.Transaction;
|
import de.hsadmin.core.model.Transaction;
|
||||||
|
import de.hsadmin.core.model.KindOfSelectableValue;
|
||||||
|
|
||||||
public class ModulePropertiesRemote implements IRemote {
|
public class ModulePropertiesRemote implements IRemote {
|
||||||
|
|
||||||
@ -51,22 +53,38 @@ public class ModulePropertiesRemote implements IRemote {
|
|||||||
ReadWriteAccess rw = fieldIO.rw();
|
ReadWriteAccess rw = fieldIO.rw();
|
||||||
propertyProperties.put("rw", rw.name());
|
propertyProperties.put("rw", rw.name());
|
||||||
String[] referredProps = fieldIO.referredProps();
|
String[] referredProps = fieldIO.referredProps();
|
||||||
propertyProperties.put("referredProps", referredProps);
|
propertyProperties.put("referredProps", referredProps);
|
||||||
// Class<?> declaringClass = f.getDeclaringClass();
|
|
||||||
// declaringClass = f.getDeclaringClass();
|
|
||||||
for(String s : referredProps) {
|
for(String s : referredProps) {
|
||||||
String fullPropertyName = fieldName+"."+s;
|
String fullPropertyName = fieldName+"."+s;
|
||||||
propertiesList.add(createReferredPropertyInfo(fullPropertyName, f, s));
|
propertiesList.add(createReferredPropertyInfo(fullPropertyName, f, s));
|
||||||
}
|
}
|
||||||
ArrayList<Map<String,Object>> selectableValueslist = new ArrayList<Map<String,Object>>();
|
DefaultSelectableValues selectableValuesInstance = fieldIO.selectableValues().newInstance() ;
|
||||||
List<SelectableValue> selectableValues = fieldIO.selectableValues().newInstance().get();
|
KindOfSelectableValue kind = selectableValuesInstance.getkind();
|
||||||
propertyProperties.put("selectableValues", selectableValueslist);
|
HashMap<String,Object> kindMap = new HashMap<String,Object>();
|
||||||
for( SelectableValue s : selectableValues) {
|
kindMap.put("kind", kind.name());
|
||||||
String SelectableValueName = s.getName();
|
switch (kind) {
|
||||||
Object SelectableValues = s.getValues();
|
case UNSPECIFIED :
|
||||||
Map<String, Object> m = new HashMap<String, Object>();
|
break;
|
||||||
m.put(SelectableValueName, SelectableValues);
|
case SINGLESTRING :
|
||||||
selectableValueslist.add(m);
|
propertyProperties.put("selectableValues", kindMap);
|
||||||
|
// ArrayList<Map<String,String>> selectableValueslist = new ArrayList<Map<String,String>>();
|
||||||
|
// kindMap.put("values", selectableValueslist);
|
||||||
|
// List<SelectableValue> selectableValues = selectableValuesInstance.get();
|
||||||
|
// TODO: Hier fehlt noch was!
|
||||||
|
break;
|
||||||
|
case DOMAINOPTIONS :
|
||||||
|
propertyProperties.put("selectableValues", kindMap);
|
||||||
|
ArrayList<Map<String,Object>> selectableValueslist = new ArrayList<Map<String,Object>>();
|
||||||
|
kindMap.put("values", selectableValueslist);
|
||||||
|
List<SelectableValue> selectableValues = selectableValuesInstance.get();
|
||||||
|
for( SelectableValue s : selectableValues) {
|
||||||
|
String SelectableValueName = s.getName();
|
||||||
|
Object SelectableValues = s.getValues();
|
||||||
|
Map<String, Object> m = new HashMap<String, Object>();
|
||||||
|
m.put(SelectableValueName, SelectableValues);
|
||||||
|
selectableValueslist.add(m);
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
addCommonPropertyInfo(propertyProperties, f);
|
addCommonPropertyInfo(propertyProperties, f);
|
||||||
propertiesList.add(propertyProperties);
|
propertiesList.add(propertyProperties);
|
||||||
|
Loading…
Reference in New Issue
Block a user