-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[#11799] MasterDataManagement - generic UI
- Loading branch information
1 parent
fba8983
commit 17fe33c
Showing
2 changed files
with
99 additions
and
0 deletions.
There are no files selected for viewing
28 changes: 28 additions & 0 deletions
28
bff-api/src/main/java/org/smartbit4all/bff/api/mdm/MDMAdminPageApi.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
package org.smartbit4all.bff.api.mdm; | ||
|
||
import org.smartbit4all.api.mdm.bean.MDMDefinition; | ||
import org.smartbit4all.api.mdm.bean.MDMEntryDescriptor; | ||
import org.smartbit4all.api.view.PageApi; | ||
|
||
|
||
/** | ||
* This page is the generic page api for the master data management administration view. | ||
*/ | ||
public interface MDMAdminPageApi extends PageApi<MDMDefinition> { | ||
|
||
/** | ||
* Open the given MDMListPage for the descriptor. | ||
*/ | ||
static final String ACTION_OPEN_LIST = "OPEN_LIST"; | ||
|
||
/** | ||
* The identifier of of the {@link MDMDefinition} object parameter. | ||
*/ | ||
static final String PARAM_MDM_DEFINITION = "MDM_DEFINITION"; | ||
|
||
/** | ||
* The identifier of of the {@link MDMEntryDescriptor} object parameter. | ||
*/ | ||
static final String ACTION_PARAM_MDM_ENTRY = "MDM_ENTRY"; | ||
|
||
} |
71 changes: 71 additions & 0 deletions
71
bff-api/src/main/java/org/smartbit4all/bff/api/mdm/MDMAdminPageApiImpl.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,71 @@ | ||
package org.smartbit4all.bff.api.mdm; | ||
|
||
import java.util.UUID; | ||
import org.smartbit4all.api.mdm.MasterDataManagementApi; | ||
import org.smartbit4all.api.mdm.bean.MDMDefinition; | ||
import org.smartbit4all.api.org.OrgUtils; | ||
import org.smartbit4all.api.session.SessionApi; | ||
import org.smartbit4all.api.view.PageApiImpl; | ||
import org.smartbit4all.api.view.bean.UiAction; | ||
import org.smartbit4all.api.view.bean.View; | ||
import org.springframework.beans.factory.annotation.Autowired; | ||
import static java.util.stream.Collectors.toList; | ||
|
||
public class MDMAdminPageApiImpl extends PageApiImpl<MDMDefinition> implements MDMAdminPageApi { | ||
|
||
@Autowired | ||
private MasterDataManagementApi masterDataManagementApi; | ||
|
||
@Autowired | ||
private SessionApi sessionApi; | ||
|
||
public MDMAdminPageApiImpl(Class<MDMDefinition> clazz) { | ||
super(MDMDefinition.class); | ||
} | ||
|
||
/** | ||
* The page context is a useful object to encapsulate all the parameters necessary to execute the | ||
* actions of the page. | ||
*/ | ||
protected class PageContext { | ||
|
||
View view; | ||
MDMDefinition definition; | ||
|
||
PageContext loadByView() { | ||
definition = getDefinition(view); | ||
return this; | ||
} | ||
|
||
private final MDMDefinition getDefinition(View view) { | ||
return extractParam(MDMDefinition.class, PARAM_MDM_DEFINITION, view.getParameters()); | ||
} | ||
|
||
public boolean checkAdmin() { | ||
return OrgUtils.securityPredicate(sessionApi, definition.getAdminGroupName()); | ||
} | ||
|
||
} | ||
|
||
protected PageContext getContextByViewUUID(UUID viewUuid) { | ||
PageContext result = new PageContext(); | ||
result.view = viewApi.getView(viewUuid); | ||
return result.loadByView(); | ||
} | ||
|
||
protected PageContext getContextByView(View view) { | ||
PageContext result = new PageContext(); | ||
result.view = view; | ||
return result.loadByView(); | ||
} | ||
|
||
@Override | ||
public MDMDefinition initModel(View view) { | ||
PageContext context = getContextByView(view); | ||
view.setActions(context.definition.getDescriptors().entrySet().stream().map(e -> new UiAction() | ||
.code(ACTION_OPEN_LIST).putParamsItem(ACTION_PARAM_MDM_ENTRY, e.getValue().getName())) | ||
.collect(toList())); | ||
return context.definition; | ||
} | ||
|
||
} |