Skip to content

Commit

Permalink
Enabling ResourceWizard
Browse files Browse the repository at this point in the history
  • Loading branch information
Erik Suta committed Sep 5, 2014
1 parent 5a29629 commit 0979b6d
Show file tree
Hide file tree
Showing 7 changed files with 101 additions and 43 deletions.
Expand Up @@ -129,7 +129,7 @@ private SchemaHandlingDto lodObjectTypes(){
SchemaHandlingType schemaHandling = resourceModel.getObject().asObjectable().getSchemaHandling();

ResourceObjectTypeDefinitionTypeDto obj;
if(schemaHandling.getObjectType() != null){
if(schemaHandling != null && schemaHandling.getObjectType() != null){
for(ResourceObjectTypeDefinitionType objectType: schemaHandling.getObjectType()){

// temporary fix - think about better solution
Expand All @@ -147,15 +147,6 @@ private SchemaHandlingDto lodObjectTypes(){
}
}

//TODO - delete this when this step is finished and tested
ResourceObjectTypeDefinitionType sample = new ResourceObjectTypeDefinitionType();
sample.setDisplayName("Test Object Class");
sample.getAttribute().add(new ResourceAttributeDefinitionType());
sample.getAssociation().add(new ResourceObjectAssociationType());
ResourceObjectTypeDefinitionTypeDto sampleDto = new ResourceObjectTypeDefinitionTypeDto(sample);
list.add(sampleDto);
//TODO - delete

dto.setSelected(createPlaceholderObjectType());
dto.setObjectClassList(loadResourceObjectClassList());
dto.setObjectTypeList(list);
Expand Down Expand Up @@ -271,6 +262,7 @@ public Object getObject() {
tableBody.add(objectTypeDataView);

NavigatorPanel navigator = new NavigatorPanel(ID_PAGING_OBJECT_TYPE, objectTypeDataView, true);
navigator.setOutputMarkupPlaceholderTag(true);
navigator.setOutputMarkupId(true);
add(navigator);

Expand Down
Expand Up @@ -145,7 +145,7 @@ private MenuBarItem createResourcesItems() {
resources.addMenuItem(new MenuItem(createStringResource("PageAdmin.menu.top.resources.list"), PageResources.class));
//todo delete this [lazyman]
resources.addMenuItem(new MenuItem(createStringResource("PageAdmin.menu.top.resources.new"), PageResourceEdit.class));
// resources.addMenuItem(new MenuItem(createStringResource("PageAdmin.menu.top.resources.wizard"), PageResourceWizard.class));
resources.addMenuItem(new MenuItem(createStringResource("PageAdmin.menu.top.resources.wizard"), PageResourceWizard.class));
//

// items.add(new BottomMenuItem(createStringResource("pageAdminResources.detailsResource"), PageResource.class,
Expand Down
Expand Up @@ -85,7 +85,27 @@ public class PageResource extends PageAdminResources {
private static final String DOT_CLASS = PageResource.class.getName() + ".";
private static final String OPERATION_IMPORT_FROM_RESOURCE = DOT_CLASS + "importFromResource";
private static final String TEST_CONNECTION = DOT_CLASS + "testConnection";
private static final String ID_BUTTON_DELETE_TOKEN = "deleteSyncToken";

private static final String ID_FORM_MAIN = "mainForm";
private static final String ID_RESOURCE_OID = "resourceOid";
private static final String ID_RESOURCE_NAME = "resourceName";
private static final String ID_RESOURCE_TYPE = "resourceType";
private static final String ID_RESOURCE_VERSION = "resourceVersion";
private static final String ID_RESOURCE_PROGRESS = "resourceProgress";
private static final String ID_CONNECTORS = "connectors";
private static final String ID_OVERALL_STATUS = "overallStatus";
private static final String ID_CONF_VALIDATION = "confValidation";
private static final String ID_CON_INITIALIZATION = "conInitialization";
private static final String ID_CON_CONNECTION = "conConnection";
private static final String ID_CON_SCHEMA = "conSchema";
private static final String ID_LIST_CAPABILITIES = "listCapabilities";
private static final String ID_CAPABILITIES = "capabilities";
private static final String ID_TABLE_OBJECT_TYPE = "objectTypesTable";
private static final String ID_BUTTON_BACK = "back";
private static final String ID_BUTTON_EDIT = "editResource";
private static final String ID_BUTTON_TEST = "test";
private static final String ID_BUTTON_IMPORT_ACCOUNTS = "importAccounts";
private static final String ID_BUTTON_DELETE_SYNC_TOKEN = "deleteSyncToken";

private IModel<ResourceDto> model;

Expand Down Expand Up @@ -115,13 +135,13 @@ private ResourceDto loadResourceDto() {
}

private void initLayout() {
Form mainForm = new Form("mainForm");
Form mainForm = new Form(ID_FORM_MAIN);
add(mainForm);

SortableDataProvider<ResourceObjectTypeDto, String> provider = new ListDataProvider<>(this,
new PropertyModel<List<ResourceObjectTypeDto>>(model, "objectTypes"));
provider.setSort("displayName", SortOrder.ASCENDING);
TablePanel objectTypes = new TablePanel<>("objectTypesTable", provider,
TablePanel objectTypes = new TablePanel<>(ID_TABLE_OBJECT_TYPE, provider,
initObjectTypesColumns(), UserProfileStorage.TableId.PAGE_RESOURCE_PANEL);
objectTypes.setShowPaging(true);
objectTypes.setOutputMarkupId(true);
Expand All @@ -135,11 +155,11 @@ private void initLayout() {
}

private void initResourceColumns(Form mainForm) {
mainForm.add(new Label("resourceOid", new PropertyModel<>(model, "oid")));
mainForm.add(new Label("resourceName", new PropertyModel<>(model, "name")));
mainForm.add(new Label("resourceType", new PropertyModel<>(model, "type")));
mainForm.add(new Label("resourceVersion", new PropertyModel<>(model, "version")));
mainForm.add(new Label("resourceProgress", new PropertyModel<>(model, "progress")));
mainForm.add(new Label(ID_RESOURCE_OID, new PropertyModel<>(model, "oid")));
mainForm.add(new Label(ID_RESOURCE_NAME, new PropertyModel<>(model, "name")));
mainForm.add(new Label(ID_RESOURCE_TYPE, new PropertyModel<>(model, "type")));
mainForm.add(new Label(ID_RESOURCE_VERSION, new PropertyModel<>(model, "version")));
mainForm.add(new Label(ID_RESOURCE_PROGRESS, new PropertyModel<>(model, "progress")));
}

private IModel<String> createTestConnectionStateTooltip(final String expression) {
Expand Down Expand Up @@ -167,11 +187,11 @@ private Label createImageLabel(String id, IModel<String> title, IModel<String> c
}

private void initConnectorDetails(Form mainForm) {
WebMarkupContainer container = new WebMarkupContainer("connectors");
WebMarkupContainer container = new WebMarkupContainer(ID_CONNECTORS);
container.setOutputMarkupId(true);
mainForm.add(container);

container.add(createImageLabel("overallStatus", createTestConnectionStateTooltip("state.overall"),
container.add(createImageLabel(ID_OVERALL_STATUS, createTestConnectionStateTooltip("state.overall"),
new AbstractReadOnlyModel<String>() {

@Override
Expand All @@ -180,7 +200,7 @@ public String getObject() {
}
}
));
container.add(createImageLabel("confValidation", createTestConnectionStateTooltip("state.confValidation"),
container.add(createImageLabel(ID_CONF_VALIDATION, createTestConnectionStateTooltip("state.confValidation"),
new AbstractReadOnlyModel<String>() {

@Override
Expand All @@ -189,7 +209,7 @@ public String getObject() {
}
}
));
container.add(createImageLabel("conInitialization", createTestConnectionStateTooltip("state.conInitialization"),
container.add(createImageLabel(ID_CON_INITIALIZATION, createTestConnectionStateTooltip("state.conInitialization"),
new AbstractReadOnlyModel<String>() {

@Override
Expand All @@ -198,7 +218,7 @@ public String getObject() {
}
}
));
container.add(createImageLabel("conConnection", createTestConnectionStateTooltip("state.conConnection"),
container.add(createImageLabel(ID_CON_CONNECTION, createTestConnectionStateTooltip("state.conConnection"),
new AbstractReadOnlyModel<String>() {

@Override
Expand All @@ -208,7 +228,7 @@ public String getObject() {
}
));

container.add(createImageLabel("conSchema", createTestConnectionStateTooltip("state.conSchema"),
container.add(createImageLabel(ID_CON_SCHEMA, createTestConnectionStateTooltip("state.conSchema"),
new AbstractReadOnlyModel<String>() {

@Override
Expand All @@ -221,7 +241,7 @@ public String getObject() {

private List<String> initCapabilities(ResourceType resource) {
OperationResult result = new OperationResult("Load resource capabilities");
List<String> capabilitiesName = new ArrayList<String>();
List<String> capabilitiesName = new ArrayList<>();
try {
List<Object> capabilitiesList = ResourceTypeUtil.getEffectiveCapabilities(resource);

Expand All @@ -232,7 +252,7 @@ private List<String> initCapabilities(ResourceType resource) {
}
} catch (Exception ex) {
result.recordFatalError("Couldn't load resource capabilities for resource'"
+ new PropertyModel<Object>(model, "name") + ".", ex);
+ new PropertyModel<>(model, "name") + ".", ex);

}
return capabilitiesName;
Expand Down Expand Up @@ -280,11 +300,11 @@ private List<IColumn<ResourceObjectTypeDto, String>> initObjectTypesColumns() {
}

private void createCapabilitiesList(Form mainForm) {
ListView<String> listCapabilities = new ListView<String>("listCapabilities", createCapabilitiesModel(model)) {
ListView<String> listCapabilities = new ListView<String>(ID_LIST_CAPABILITIES, createCapabilitiesModel(model)) {

@Override
protected void populateItem(ListItem<String> item) {
item.add(new Label("capabilities", item.getModel()));
item.add(new Label(ID_CAPABILITIES, item.getModel()));

}
};
Expand All @@ -303,7 +323,7 @@ protected List<String> load() {
}

private void initButtons(Form mainForm) {
AjaxButton back = new AjaxButton("back", createStringResource("pageResource.button.back")) {
AjaxButton back = new AjaxButton(ID_BUTTON_BACK, createStringResource("pageResource.button.back")) {

@Override
public void onClick(AjaxRequestTarget target) {
Expand All @@ -312,7 +332,7 @@ public void onClick(AjaxRequestTarget target) {
};
mainForm.add(back);

AjaxButton test = new AjaxButton("test", createStringResource("pageResource.button.test")) {
AjaxButton test = new AjaxButton(ID_BUTTON_TEST, createStringResource("pageResource.button.test")) {

@Override
public void onClick(AjaxRequestTarget target) {
Expand All @@ -321,7 +341,7 @@ public void onClick(AjaxRequestTarget target) {
};
mainForm.add(test);

AjaxButton importAccounts = new AjaxButton("importAccounts",
AjaxButton importAccounts = new AjaxButton(ID_BUTTON_IMPORT_ACCOUNTS,
createStringResource("pageResource.button.importAccounts")) {

@Override
Expand All @@ -331,18 +351,18 @@ public void onClick(AjaxRequestTarget target) {
};
mainForm.add(importAccounts);

AjaxButton link = new AjaxButton("editResource", createStringResource("pageResource.editResource")) {
AjaxButton link = new AjaxButton(ID_BUTTON_EDIT, createStringResource("pageResource.editResource")) {

@Override
public void onClick(AjaxRequestTarget target) {
PageParameters parameters = new PageParameters();
parameters.add(OnePageParameterEncoder.PARAMETER, model.getObject().getOid());
setResponsePage(PageResourceEdit.class, parameters);
setResponsePage(new PageResourceWizard(parameters));
}
};
mainForm.add(link);

AjaxButton deleteToken = new AjaxButton(ID_BUTTON_DELETE_TOKEN, createStringResource("pageResource.deleteSyncToken")) {
AjaxButton deleteToken = new AjaxButton(ID_BUTTON_DELETE_SYNC_TOKEN, createStringResource("pageResource.deleteSyncToken")) {
@Override
public void onClick(AjaxRequestTarget target) {
deleteSyncTokenPerformed(target, model);
Expand Down Expand Up @@ -385,7 +405,7 @@ private void testConnectionPerformed(AjaxRequestTarget target) {
result.recomputeStatus();
}

WebMarkupContainer connectors = (WebMarkupContainer) get("mainForm:connectors");
WebMarkupContainer connectors = (WebMarkupContainer) get(ID_FORM_MAIN + ":" + ID_CONNECTORS);
target.add(connectors);

if (!result.isSuccess()) {
Expand Down
Expand Up @@ -60,6 +60,8 @@

/**
* @author lazyman
*
* TODO - delete this page when ResourceWizard is fully functional and tested
*/
@PageDescriptor(url = "/admin/resource/edit", encoder = OnePageParameterEncoder.class, action = {
@AuthorizationAction(actionUri = PageAdminResources.AUTH_RESOURCE_ALL,
Expand All @@ -68,6 +70,7 @@
@AuthorizationAction(actionUri = AuthorizationConstants.NS_AUTHORIZATION + "#resourceEdit",
label = "PageResourceEdit.auth.resourceEdit.label",
description = "PageResourceEdit.auth.resourceEdit.description")})
@Deprecated
public class PageResourceEdit extends PageAdminResources {

private static final String DOT_CLASS = PageResourceEdit.class.getName() + ".";
Expand Down
Expand Up @@ -16,7 +16,6 @@

package com.evolveum.midpoint.web.page.admin.resources;

import com.evolveum.midpoint.prism.PrismContext;
import com.evolveum.midpoint.prism.PrismObject;
import com.evolveum.midpoint.security.api.AuthorizationConstants;
import com.evolveum.midpoint.util.logging.LoggingUtils;
Expand All @@ -31,26 +30,34 @@
import com.evolveum.midpoint.web.util.WebModelUtils;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ResourceType;

import org.apache.commons.lang.StringUtils;
import org.apache.wicket.RestartResponseException;
import org.apache.wicket.extensions.wizard.WizardModel;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
import org.apache.wicket.model.StringResourceModel;
import org.apache.wicket.request.mapper.parameter.PageParameters;
import org.apache.wicket.util.string.StringValue;

/**
* @author lazyman
*/
//@PageDescriptor(url = "/admin/resources/wizard", encoder = OnePageParameterEncoder.class, action = {
// PageAdminResources.AUTHORIZATION_RESOURCE_ALL,
// AuthorizationConstants.NS_AUTHORIZATION + "#resourceWizard"})
@PageDescriptor(url = "/admin/resources/wizard",
action = {@AuthorizationAction(actionUri = AuthorizationConstants.AUTZ_NO_ACCESS_URL)})
@PageDescriptor(url = "/admin/resources/wizard", encoder = OnePageParameterEncoder.class, action = {
@AuthorizationAction(actionUri = PageAdminResources.AUTH_RESOURCE_ALL,
label = PageAdminResources.AUTH_RESOURCE_ALL_LABEL,
description = PageAdminResources.AUTH_RESOURCE_ALL_DESCRIPTION),
@AuthorizationAction(actionUri = AuthorizationConstants.NS_AUTHORIZATION + "#resource",
label = "PageResourceWizard.auth.resource.label",
description = "PageResourceWizard.auth.resource.description")})
public class PageResourceWizard extends PageAdminResources {

private static final String ID_WIZARD = "wizard";
private IModel<PrismObject<ResourceType>> model;
private PageParameters parameters;

public PageResourceWizard(PageParameters parameters) {
this.parameters = parameters;

public PageResourceWizard() {
model = new LoadableModel<PrismObject<ResourceType>>(false) {

@Override
Expand Down Expand Up @@ -80,6 +87,26 @@ protected PrismObject<ResourceType> load() {
initLayout();
}

@Override
protected boolean isResourceOidAvailable(){
if(parameters != null){
StringValue resourceOid = parameters.get(OnePageParameterEncoder.PARAMETER);
return resourceOid != null && StringUtils.isNotEmpty(resourceOid.toString());
} else {
return false;
}
}

@Override
protected String getResourceOid() {
if(parameters != null){
StringValue resourceOid = parameters.get(OnePageParameterEncoder.PARAMETER);
return resourceOid != null ? resourceOid.toString() : null;
} else {
return null;
}
}

@Override
protected IModel<String> createPageSubTitleModel() {
return new LoadableModel<String>(false) {
Expand Down
Expand Up @@ -239,6 +239,15 @@ public void onClick(AjaxRequestTarget target){

}));

dto.getMenuItems().add(new InlineMenuItem(createStringResource("pageResources.inlineMenuItem.editResource"),
new ColumnMenuAction<ResourceDto>(){

@Override
public void onClick(AjaxRequestTarget target){
editResourcePerformed(getRowModel());
}
}));

return dto;
}

Expand Down Expand Up @@ -656,6 +665,12 @@ private void deleteResourceSyncTokenPerformed(AjaxRequestTarget target, IModel<R
deleteSyncTokenPerformed(target, model);
}

private void editResourcePerformed(IModel<ResourceDto> model){
PageParameters parameters = new PageParameters();
parameters.add(OnePageParameterEncoder.PARAMETER, model.getObject().getOid());
setResponsePage(new PageResourceWizard(parameters));
}

private void clearSearchPerformed(AjaxRequestTarget target){
searchModel.setObject(new ResourceSearchDto());

Expand Down
Expand Up @@ -31,6 +31,7 @@ pageResources.connector.port=Port
pageResources.connector.timeout=Timeout
pageResources.connector.protectConnection=Protected
pageResources.inlineMenuItem.deleteSyncToken=Delete Sync. Token
pageResources.inlineMenuItem.editResource=Edit Resource
pageResources.button.discoveryRemote=Discovery
pageResources.button.search=Search
pageResources.searchText.placeholder=Name
Expand Down

0 comments on commit 0979b6d

Please sign in to comment.