MemberShares Tab in CustomerPanel
This commit is contained in:
parent
f358e01d52
commit
92c50c8e48
@ -79,14 +79,14 @@ public class MemberShareService extends AbstractModule<MemberShareVO> implements
|
|||||||
@RequiredScope({@ScopePolicy(Role.SYSTEM)})
|
@RequiredScope({@ScopePolicy(Role.SYSTEM)})
|
||||||
public List<MemberShareVO> update(final RequestContext requestContext, final MemberShareVO criteria, final MemberShareVO prototype)
|
public List<MemberShareVO> update(final RequestContext requestContext, final MemberShareVO criteria, final MemberShareVO prototype)
|
||||||
throws UserException, TechnicalException {
|
throws UserException, TechnicalException {
|
||||||
throw new TechnicalException(new NotImplementedException("MemberShares are immuatable"));
|
throw new TechnicalException(new NotImplementedException("MemberShares are immutable"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@RequiredScope({@ScopePolicy(Role.SYSTEM)})
|
@RequiredScope({@ScopePolicy(Role.SYSTEM)})
|
||||||
public void delete(final RequestContext requestContext, final MemberShareVO criteria)
|
public void delete(final RequestContext requestContext, final MemberShareVO criteria)
|
||||||
throws UserException, TechnicalException {
|
throws UserException, TechnicalException {
|
||||||
throw new TechnicalException(new NotImplementedException("MemberShares are immuatable"));
|
throw new TechnicalException(new NotImplementedException("MemberShares are immutable"));
|
||||||
}
|
}
|
||||||
|
|
||||||
// macht diese Klasse Unit-testbar
|
// macht diese Klasse Unit-testbar
|
||||||
|
@ -100,9 +100,13 @@ public class PropertyInfo implements Serializable {
|
|||||||
void setSearchable(final String searchable) {
|
void setSearchable(final String searchable) {
|
||||||
this.searchable = SearchPolicy.valueOf(searchable.toUpperCase());
|
this.searchable = SearchPolicy.valueOf(searchable.toUpperCase());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getResourceId() {
|
||||||
|
return module + "." + name;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return "PropertyInfo " + module + "." + name;
|
return "PropertyInfo " + getResourceId();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -34,12 +34,20 @@ public class CustomerPanel extends CustomComponent implements IHSPanel, Selected
|
|||||||
tabsheet.addSelectedTabChangeListener(this);
|
tabsheet.addSelectedTabChangeListener(this);
|
||||||
tabsheet.addSelectedTabChangeListener(this);
|
tabsheet.addSelectedTabChangeListener(this);
|
||||||
tabsheet.addTab(new GenericForm("customer", session, itemId, "name"), I18N.getText("customer"));
|
tabsheet.addTab(new GenericForm("customer", session, itemId, "name"), I18N.getText("customer"));
|
||||||
|
|
||||||
final HSTab usersTab = new HSTab("contact", session, "customer", itemId, "email");
|
final HSTab usersTab = new HSTab("contact", session, "customer", itemId, "email");
|
||||||
usersTab.fillTable();
|
usersTab.fillTable();
|
||||||
tabsheet.addTab(usersTab, I18N.getText("contact"));
|
tabsheet.addTab(usersTab, I18N.getText("contact"));
|
||||||
HSTab aliasTab = new HSTab("mandat", session, "customer", itemId, "mandatRef");
|
|
||||||
|
final HSTab aliasTab = new HSTab("mandat", session, "customer", itemId, "mandatRef");
|
||||||
tabsheet.addTab(aliasTab, I18N.getText("mandat"));
|
tabsheet.addTab(aliasTab, I18N.getText("mandat"));
|
||||||
HSTab pacTab = new HSTab("pac", session, "customer", itemId, "name");
|
|
||||||
|
final HSTab assetsTab = new HSTab("memberShare", session, "customer", itemId, "id");
|
||||||
|
assetsTab.getPanelToolbar().setUpdateEnabled(false);
|
||||||
|
assetsTab.getPanelToolbar().setDeleteEnabled(false);
|
||||||
|
tabsheet.addTab(assetsTab, I18N.getText("memberShare"));
|
||||||
|
|
||||||
|
final HSTab pacTab = new HSTab("pac", session, "customer", itemId, "name");
|
||||||
tabsheet.addTab(pacTab, I18N.getText("pac"));
|
tabsheet.addTab(pacTab, I18N.getText("pac"));
|
||||||
return tabsheet;
|
return tabsheet;
|
||||||
}
|
}
|
||||||
|
@ -50,6 +50,11 @@ public class GenericEditorFactory implements IEditorFactory, Serializable {
|
|||||||
return getSelectFromRemote(action, propertyInfo, session, "postgresqluser", whereContext);
|
return getSelectFromRemote(action, propertyInfo, session, "postgresqluser", whereContext);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if ("memberShare".equals(module)) {
|
||||||
|
if ("action".equals(inputName)) {
|
||||||
|
return getMemberShareActionEditor(action, propertyInfo, session, whereContext);
|
||||||
|
}
|
||||||
|
}
|
||||||
return getEditor(action, propertyInfo);
|
return getEditor(action, propertyInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -58,6 +63,13 @@ public class GenericEditorFactory implements IEditorFactory, Serializable {
|
|||||||
return PanelToolbar.ACTION_EDIT.equals(action) ? new DomainOptionsEditor(propertyInfo, session, whereContext) : new NullEditor();
|
return PanelToolbar.ACTION_EDIT.equals(action) ? new DomainOptionsEditor(propertyInfo, session, whereContext) : new NullEditor();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private IHSEditor getMemberShareActionEditor(String action, PropertyInfo propertyInfo, HSAdminSession session, Map<String, String> whereContext) {
|
||||||
|
final String[] items = new String[] { "SUBSCRIPTION", "UNSUBSCRIPTION" };
|
||||||
|
final HSSelect field = new HSSelect(propertyInfo, 0, Arrays.asList(items));
|
||||||
|
field.setWidth("100%");
|
||||||
|
field.setEnabled(isWriteAble(propertyInfo, action));
|
||||||
|
return field;
|
||||||
|
}
|
||||||
|
|
||||||
private IHSEditor getEMailTargetEditor(final String action, final PropertyInfo propertyInfo, final HSAdminSession session, final Map<String, String> whereContext)
|
private IHSEditor getEMailTargetEditor(final String action, final PropertyInfo propertyInfo, final HSAdminSession session, final Map<String, String> whereContext)
|
||||||
{
|
{
|
||||||
@ -75,6 +87,9 @@ public class GenericEditorFactory implements IEditorFactory, Serializable {
|
|||||||
if ("shell".equals(inputName)) {
|
if ("shell".equals(inputName)) {
|
||||||
return getShellSelect(action, propertyInfo);
|
return getShellSelect(action, propertyInfo);
|
||||||
}
|
}
|
||||||
|
if ("date".equals(inputName)) {
|
||||||
|
return getDateSelect(action, propertyInfo);
|
||||||
|
}
|
||||||
final String module = propertyInfo.getModule();
|
final String module = propertyInfo.getModule();
|
||||||
if ("user".equals(module) || "emailalias".equals(module)) {
|
if ("user".equals(module) || "emailalias".equals(module)) {
|
||||||
if ("name".equals(inputName)) {
|
if ("name".equals(inputName)) {
|
||||||
@ -99,7 +114,7 @@ public class GenericEditorFactory implements IEditorFactory, Serializable {
|
|||||||
|
|
||||||
private IHSEditor getSelectField(final String action, final PropertyInfo propertyInfo, final String... items)
|
private IHSEditor getSelectField(final String action, final PropertyInfo propertyInfo, final String... items)
|
||||||
{
|
{
|
||||||
final HSSelect field = new HSSelect(propertyInfo.getName(), Arrays.asList(items));
|
final HSSelect field = new HSSelect(propertyInfo, 0, Arrays.asList(items));
|
||||||
field.setWidth("100%");
|
field.setWidth("100%");
|
||||||
field.setEnabled(isWriteAble(propertyInfo, action));
|
field.setEnabled(isWriteAble(propertyInfo, action));
|
||||||
return field;
|
return field;
|
||||||
@ -108,7 +123,7 @@ public class GenericEditorFactory implements IEditorFactory, Serializable {
|
|||||||
|
|
||||||
private IHSEditor getPacPrefixedField(final String action, final PropertyInfo propertyInfo, final char delimiter)
|
private IHSEditor getPacPrefixedField(final String action, final PropertyInfo propertyInfo, final char delimiter)
|
||||||
{
|
{
|
||||||
final HSPacPrefixedField field = new HSPacPrefixedField(propertyInfo.getName(), delimiter);
|
final HSPacPrefixedField field = new HSPacPrefixedField(propertyInfo, delimiter);
|
||||||
field.setWidth("100%");
|
field.setWidth("100%");
|
||||||
field.setValue("xyz00-");
|
field.setValue("xyz00-");
|
||||||
enableAndValidate(action, propertyInfo, field);
|
enableAndValidate(action, propertyInfo, field);
|
||||||
@ -118,7 +133,15 @@ public class GenericEditorFactory implements IEditorFactory, Serializable {
|
|||||||
private IHSEditor getShellSelect(final String action, final PropertyInfo propertyInfo)
|
private IHSEditor getShellSelect(final String action, final PropertyInfo propertyInfo)
|
||||||
{
|
{
|
||||||
final String[] items = new String[] { "/bin/false", "/bin/bash", "/bin/csh", "/bin/dash", "/bin/ksh", "/bin/tcsh", "/bin/zsh", "/usr/bin/passwd", "/usr/bin/scponly" };
|
final String[] items = new String[] { "/bin/false", "/bin/bash", "/bin/csh", "/bin/dash", "/bin/ksh", "/bin/tcsh", "/bin/zsh", "/usr/bin/passwd", "/usr/bin/scponly" };
|
||||||
final HSSelect field = new HSSelect(propertyInfo.getName(), 7, Arrays.asList(items));
|
final HSSelect field = new HSSelect(propertyInfo, 7, Arrays.asList(items));
|
||||||
|
field.setWidth("100%");
|
||||||
|
field.setEnabled(isWriteAble(propertyInfo, action));
|
||||||
|
return field;
|
||||||
|
}
|
||||||
|
|
||||||
|
private IHSEditor getDateSelect(final String action, final PropertyInfo propertyInfo)
|
||||||
|
{
|
||||||
|
final HSDateSelect field = new HSDateSelect(propertyInfo);
|
||||||
field.setWidth("100%");
|
field.setWidth("100%");
|
||||||
field.setEnabled(isWriteAble(propertyInfo, action));
|
field.setEnabled(isWriteAble(propertyInfo, action));
|
||||||
return field;
|
return field;
|
||||||
@ -142,7 +165,7 @@ public class GenericEditorFactory implements IEditorFactory, Serializable {
|
|||||||
// TODO Auto-generated catch block
|
// TODO Auto-generated catch block
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
final HSSelect field = new HSSelect(propertyInfo.getName(), selectList);
|
final HSSelect field = new HSSelect(propertyInfo, 0, selectList);
|
||||||
field.setEnabled(isWriteAble(propertyInfo, action));
|
field.setEnabled(isWriteAble(propertyInfo, action));
|
||||||
field.setWidth("100%");
|
field.setWidth("100%");
|
||||||
return field;
|
return field;
|
||||||
@ -158,7 +181,7 @@ public class GenericEditorFactory implements IEditorFactory, Serializable {
|
|||||||
|
|
||||||
private IHSEditor getTextField(final String action, final PropertyInfo propertyInfo)
|
private IHSEditor getTextField(final String action, final PropertyInfo propertyInfo)
|
||||||
{
|
{
|
||||||
final HSTextField field = new HSTextField(propertyInfo.getName());
|
final HSTextField field = new HSTextField(propertyInfo);
|
||||||
field.setWidth("100%");
|
field.setWidth("100%");
|
||||||
enableAndValidate(action, propertyInfo, field);
|
enableAndValidate(action, propertyInfo, field);
|
||||||
return field;
|
return field;
|
||||||
|
26
web/src/main/java/de/hsadmin/web/HSDateSelect.java
Normal file
26
web/src/main/java/de/hsadmin/web/HSDateSelect.java
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
package de.hsadmin.web;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import com.vaadin.data.util.converter.StringToDateConverter;
|
||||||
|
import com.vaadin.ui.DateField;
|
||||||
|
|
||||||
|
import de.hsadmin.rpc.PropertyInfo;
|
||||||
|
|
||||||
|
public class HSDateSelect extends DateField implements IHSEditor {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
private String field;
|
||||||
|
|
||||||
|
public HSDateSelect(PropertyInfo propertyInfo) {
|
||||||
|
super(I18N.getText(propertyInfo.getResourceId()));
|
||||||
|
field = propertyInfo.getName();
|
||||||
|
setConverter(StringToDateConverter.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setValues(Map<String, Object> valuesMap) {
|
||||||
|
setConvertedValue( valuesMap.get(field) );
|
||||||
|
}
|
||||||
|
}
|
@ -2,6 +2,8 @@ package de.hsadmin.web;
|
|||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
import de.hsadmin.rpc.PropertyInfo;
|
||||||
|
|
||||||
|
|
||||||
public class HSPacPrefixedField extends HSTextField implements PacNamePrefixed {
|
public class HSPacPrefixedField extends HSTextField implements PacNamePrefixed {
|
||||||
|
|
||||||
@ -11,8 +13,8 @@ public class HSPacPrefixedField extends HSTextField implements PacNamePrefixed {
|
|||||||
|
|
||||||
private String pacName;
|
private String pacName;
|
||||||
|
|
||||||
public HSPacPrefixedField(final String name, final char delimiter) {
|
public HSPacPrefixedField(final PropertyInfo propertyInfo, final char delimiter) {
|
||||||
super(name);
|
super(propertyInfo);
|
||||||
pacName = "xyz00";
|
pacName = "xyz00";
|
||||||
this.delimiter = delimiter;
|
this.delimiter = delimiter;
|
||||||
addValidator(new PacNamePrefixValidator(this));
|
addValidator(new PacNamePrefixValidator(this));
|
||||||
|
@ -5,19 +5,17 @@ import java.util.Map;
|
|||||||
|
|
||||||
import com.vaadin.ui.NativeSelect;
|
import com.vaadin.ui.NativeSelect;
|
||||||
|
|
||||||
|
import de.hsadmin.rpc.PropertyInfo;
|
||||||
|
|
||||||
public class HSSelect extends NativeSelect implements IHSEditor {
|
public class HSSelect extends NativeSelect implements IHSEditor {
|
||||||
|
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
private final String propertyName;
|
private final String propertyName;
|
||||||
|
|
||||||
public HSSelect(final String label, final List<String> values) {
|
public HSSelect(final PropertyInfo propertyInfo, final int defaultIndex, final List<String> values) {
|
||||||
this(label, 0, values);
|
super(I18N.getText(propertyInfo.getResourceId()));
|
||||||
}
|
this.propertyName = propertyInfo.getName();
|
||||||
|
|
||||||
public HSSelect(final String label, final int defaultIndex, final List<String> values) {
|
|
||||||
super(I18N.getText(label));
|
|
||||||
this.propertyName = label;
|
|
||||||
super.addItems(values);
|
super.addItems(values);
|
||||||
if (values != null && values.size() > defaultIndex) {
|
if (values != null && values.size() > defaultIndex) {
|
||||||
super.setValue(values.get(defaultIndex));
|
super.setValue(values.get(defaultIndex));
|
||||||
|
@ -32,7 +32,7 @@ public class HSTab extends CustomComponent {
|
|||||||
private final Object selectPropertyValue;
|
private final Object selectPropertyValue;
|
||||||
private final String selectPropertyName;
|
private final String selectPropertyName;
|
||||||
private final String rowIdPropertyName;
|
private final String rowIdPropertyName;
|
||||||
private final HorizontalLayout panelToolbar;
|
private final PanelToolbar panelToolbar;
|
||||||
|
|
||||||
private Table grid;
|
private Table grid;
|
||||||
|
|
||||||
@ -166,4 +166,8 @@ public class HSTab extends CustomComponent {
|
|||||||
return selectPropertyName;
|
return selectPropertyName;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public PanelToolbar getPanelToolbar() {
|
||||||
|
return panelToolbar;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -4,15 +4,17 @@ import java.util.Map;
|
|||||||
|
|
||||||
import com.vaadin.ui.TextField;
|
import com.vaadin.ui.TextField;
|
||||||
|
|
||||||
|
import de.hsadmin.rpc.PropertyInfo;
|
||||||
|
|
||||||
public class HSTextField extends TextField implements IHSEditor {
|
public class HSTextField extends TextField implements IHSEditor {
|
||||||
|
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
private final String propertyName;
|
private final String propertyName;
|
||||||
|
|
||||||
public HSTextField(final String name) {
|
public HSTextField(final PropertyInfo propertyInfo) {
|
||||||
super(I18N.getText(name));
|
super(I18N.getText(propertyInfo.getResourceId()));
|
||||||
this.propertyName = name;
|
this.propertyName = propertyInfo.getName();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -126,4 +126,14 @@ public class PanelToolbar extends HorizontalLayout implements ClickListener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setUpdateEnabled(boolean updateEnabled) {
|
||||||
|
editBtn.setEnabled(updateEnabled);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDeleteEnabled(boolean deleteEnabled) {
|
||||||
|
deleteBtn.setEnabled(deleteEnabled);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -80,6 +80,12 @@ contact=Ansprechpartner
|
|||||||
cancel=abbrechen
|
cancel=abbrechen
|
||||||
ok=Ok
|
ok=Ok
|
||||||
mandat=SEPA-Mandat
|
mandat=SEPA-Mandat
|
||||||
|
memberShare=Geschäftsanteile
|
||||||
|
memberShare.customer=Mitglieds-Kennung
|
||||||
|
memberShare.action=Buchungstyp
|
||||||
|
memberShare.date=Buchungsdatum
|
||||||
|
memberShare.quantity=Anzahl
|
||||||
|
memberShare.comment=Kommentar
|
||||||
password=Passwort
|
password=Passwort
|
||||||
login.title=Anmeldung
|
login.title=Anmeldung
|
||||||
login.button=anmelden
|
login.button=anmelden
|
||||||
|
Loading…
Reference in New Issue
Block a user