X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.server.core%2Fsrc%2Forg%2Fargeo%2Fserver%2Fdao%2FLightDaoPropertyEditor.java;fp=org.argeo.server.core%2Fsrc%2Forg%2Fargeo%2Fserver%2Fdao%2FLightDaoPropertyEditor.java;h=de6ba7084c1c002df58fe917f8080c4fc2efd4a7;hb=79bc665d4b1eeccb7416279750bc60a138c81988;hp=0000000000000000000000000000000000000000;hpb=f00611ca313420ab96d44889577b46f31c2dcb35;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.server.core/src/org/argeo/server/dao/LightDaoPropertyEditor.java b/org.argeo.server.core/src/org/argeo/server/dao/LightDaoPropertyEditor.java new file mode 100644 index 000000000..de6ba7084 --- /dev/null +++ b/org.argeo.server.core/src/org/argeo/server/dao/LightDaoPropertyEditor.java @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2007-2012 Argeo GmbH + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.argeo.server.dao; + +import java.beans.PropertyEditorSupport; + +import org.argeo.ArgeoException; + +public class LightDaoPropertyEditor extends PropertyEditorSupport implements + LightDaoAware { + private LightDaoSupport lightDaoSupport; + + private Class targetClass; + /** Can be null */ + private String businessIdField; + + @Override + public String getAsText() { + return getValue().toString(); + } + + @Override + public void setAsText(String text) throws IllegalArgumentException { + if (targetClass == null) + throw new ArgeoException("Target class cannot be null"); + + if (businessIdField != null) + setValue(lightDaoSupport.getByField(targetClass, businessIdField, + text)); + else + setValue(lightDaoSupport.getByKey(targetClass, text)); + } + + public void setLightDaoSupport(LightDaoSupport lightDaoSupport) { + this.lightDaoSupport = lightDaoSupport; + } + + public void setTargetClass(Class targetClass) { + this.targetClass = targetClass; + } + + public void setBusinessIdField(String businessIdField) { + this.businessIdField = businessIdField; + } + +}