List of usage examples for com.google.gwt.safehtml.shared SafeHtmlUtils fromString
public static SafeHtml fromString(String s)
From source file:org.jboss.as.console.client.shared.hosts.ConfigurationChangesEditor.java
License:Open Source License
@SuppressWarnings("unchecked") public Widget asWidget() { ProvidesKey<ModelNode> providesKey = node -> node.get("operation-date").asString(); table = new DefaultCellTable<>(20, providesKey); dataProvider = new ListDataProvider<>(providesKey); dataProvider.addDataDisplay(table);// www .j a v a2s . c o m // the date / time column table.addColumn(new TextColumn<ModelNode>() { @Override public String getValue(ModelNode item) { // the operation-date is 2016-07-08T22:39:50.783Z // there is some format to facilitate user experience // by replacing the T with a blank space String opTimestamp = item.get("operation-date").asString(); opTimestamp = opTimestamp.replaceFirst("T", " "); return opTimestamp; } }, "Date and time"); // access-mechanism column TextColumn<ModelNode> accessMechanismColumn = createColumn("access-mechanism"); accessMechanismColumn.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTER); table.addColumn(accessMechanismColumn, "Access Mechanism"); // remote address column TextColumn<ModelNode> remoteAddressColumn = new TextColumn<ModelNode>() { @Override public String getValue(ModelNode item) { // the remote address is 10.10.10.10/10.10.10.10 // to facilitate user experience we cut at at first slash String clientAddress = item.get("remote-address").asString(); clientAddress = clientAddress.substring(0, clientAddress.indexOf("/")); return clientAddress; } }; remoteAddressColumn.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTER); table.addColumn(remoteAddressColumn, "Remote address"); // the resource address TextColumn<ModelNode> resourceColumn = new TextColumn<ModelNode>() { @Override public String getValue(ModelNode item) { return StringUtils.shortenStringIfNecessary(extractResourceAddress(item), 63); } }; table.addColumn(resourceColumn, "Resource address"); table.setColumnWidth(resourceColumn, 50, Style.Unit.PCT); // operation column table.addColumn(new TextColumn<ModelNode>() { @Override public String getValue(ModelNode item) { return item.get(OPERATIONS).get(0).get(OP).asString(); } }, "Operation"); // result column table.addColumn(createColumn(OUTCOME), "Result"); table.setTableLayoutFixed(false); // the details panel selectionModel = new SingleSelectionModel<>(providesKey); selectionModel.addSelectionChangeHandler(event -> { ModelNode changeDetails = selectionModel.getSelectedObject(); if (changeDetails != null) { detailsConfigurationChange.setValue(changeDetails.toString()); } }); table.setSelectionModel(selectionModel); detailsConfigurationChange = new TextAreaItem("details", "Details 1", 20); detailsConfigurationChange.setEnabled(false); HorizontalPanel header = new HorizontalPanel(); header.addStyleName("fill-layout-width"); header.add(new HTML("<h3 class='metric-label-embedded'>Configuration change details</h3>")); VerticalPanel detailsPanel = new VerticalPanel(); detailsPanel.addStyleName("metric-container"); detailsPanel.add(header); detailsPanel.add(detailsConfigurationChange.asWidget()); // ====================== DefaultPager pager = new DefaultPager(); pager.setDisplay(table); VerticalPanel tableAndPager = new VerticalPanel(); tableAndPager.setStyleName("fill-layout-width"); tableAndPager.add(table); tableAndPager.add(pager); SimpleLayout layout = new SimpleLayout().setPlain(true).setHeadline("Configuration Changes") .setDescription(SafeHtmlUtils.fromString(Console.MESSAGES.configuration_changes_description())) .addContent("", toolstripButtons()).addContent("", tableAndPager).addContent("", detailsPanel); return layout.build(); }
From source file:org.jboss.as.console.client.shared.patching.ui.ErrorDetails.java
License:Open Source License
public void setDetails(String details) { this.details.setValue(SafeHtmlUtils.fromString(details)); }
From source file:org.jboss.as.console.client.shared.patching.wizard.apply.SelectPatchStep.java
License:Open Source License
@Override protected void onNext(ApplyContext context) { errorMessages.setVisible(false);//from w w w . j a v a 2 s .com context.filename = SafeHtmlUtils.fromString(context.fileUpload.getFilename()).asString(); if (context.filename == null || context.filename.length() == 0) { errorMessages.setVisible(true); } else { super.onNext(context); } }
From source file:org.jboss.as.console.client.shared.runtime.elytron.ElytronGenericStoreRuntimeResourceView.java
License:Apache License
public Widget asWidget() { ToolStrip tools = new ToolStrip(); tools.addToolButtonRight(new ToolButton(Console.CONSTANTS.common_label_refresh(), event -> presenter.loadCredentialReferences())); ProvidesKey<Property> providesKey = Property::getName; table = new DefaultCellTable<>(10, providesKey); dataProvider = new ListDataProvider<>(providesKey); dataProvider.addDataDisplay(table);/*w ww .j av a2 s . c o m*/ selectionModel = new SingleSelectionModel<>(providesKey); TextColumn<Property> nameColumn = new TextColumn<Property>() { @Override public String getValue(Property node) { return node.getName(); } }; TextColumn<Property> stateColumn = new TextColumn<Property>() { @Override public String getValue(Property node) { return node.getValue().get("state").asString(); } }; table.addColumn(nameColumn, "Name"); table.addColumn(stateColumn, "State"); stateColumn.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTER); table.setColumnWidth(stateColumn, 20, Style.Unit.PCT); DefaultPager pager = new DefaultPager(); pager.setDisplay(table); MultipleToOneLayout layoutBuilder = new MultipleToOneLayout().setPlain(true).setHeadline(title) .setDescription(SafeHtmlUtils.fromString(resourceDescription.get(DESCRIPTION).asString())) .setMasterTools(tools).setMaster(Console.MESSAGES.available(title), table) .addDetail("Aliases", aliasEditor.asWidget()); selectionModel.addSelectionChangeHandler(event -> { Property selectedProperty = selectionModel.getSelectedObject(); if (selectedProperty != null) { aliasEditor.setCredentialReferenceName(selectedProperty.getName()); presenter.loadAliases(ElytronRuntimePresenter.CREDENTIAL_STORE_TEMPLATE, selectedProperty.getName()); } else { aliasEditor.setCredentialReferenceName(null); aliasEditor.clearValues(); } }); table.setSelectionModel(selectionModel); return layoutBuilder.build(); }
From source file:org.jboss.as.console.client.shared.subsys.activemq.GenericResourceView.java
License:Apache License
public Widget asWidget() { headerLabel = new ContentHeaderLabel(); ToolStrip tools = new ToolStrip(); tools.addToolButtonRight(new ToolButton(Console.CONSTANTS.common_label_add(), event -> launchAddDialog())); tools.addToolButtonRight(new ToolButton(Console.CONSTANTS.common_label_delete(), event -> { if (selectionModel.getSelectedObject() != null) { String name = selectionModel.getSelectedObject().getName(); Feedback.confirm(Console.MESSAGES.deleteTitle(title), Console.MESSAGES.deleteConfirm(title + " '" + name + "'"), isConfirmed -> { if (isConfirmed) { presenter.onRemoveResource(addressTemplate, name); presenter.loadDetails(); }//from ww w .j a va 2 s .c om }); } })); ProvidesKey<Property> providesKey = Property::getName; table = new DefaultCellTable<>(5, providesKey); dataProvider = new ListDataProvider<>(providesKey); dataProvider.addDataDisplay(table); selectionModel = new SingleSelectionModel<>(providesKey); TextColumn<Property> nameColumn = new TextColumn<Property>() { @Override public String getValue(Property node) { return node.getName(); } }; table.addColumn(nameColumn, "Name"); DefaultPager pager = new DefaultPager(); pager.setDisplay(table); securityContext = presenter.getSecurityFramework() .getSecurityContext(NameTokens.ActivemqMsgClusteringPresenter); ModelNodeFormBuilder formBuilder = new ModelNodeFormBuilder().setConfigOnly().createValidators(true) .setResourceDescription(resourceDescription).setSecurityContext(securityContext); customEditFormBuilder(formBuilder); modelForm = formBuilder.build(); modelForm.getForm().addFormValidator((formItemList, formValidation) -> { addFormValidatorOnAddDialog(formItemList, formValidation); }); List<String> forItems = modelForm.getForm().getFormItemNames(); int numberOfFormItems = forItems.size(); MultipleToOneLayout layoutBuilder = new MultipleToOneLayout().setPlain(true).setHeadlineWidget(headerLabel) .setDescription(SafeHtmlUtils.fromString(resourceDescription.get(DESCRIPTION).asString())) .setMasterTools(tools).setMaster(Console.MESSAGES.available(title), table); if (numberOfFormItems > 0) { modelForm.getForm().setToolsCallback(new FormCallback() { @Override @SuppressWarnings("unchecked") public void onSave(final Map changeset) { presenter.onSaveResource(addressTemplate, selectionModel.getSelectedObject().getName(), changeset); presenter.loadDetails(); } @Override public void onCancel(final Object entity) { modelForm.getForm().cancel(); } }); layoutBuilder.addDetail(Console.CONSTANTS.common_label_attributes(), modelForm.asWidget()); } Map<String, Widget> tabDetails = additionalTabDetails(); for (String detailName : tabDetails.keySet()) { layoutBuilder.addDetail(detailName, tabDetails.get(detailName)); } selectionModel.addSelectionChangeHandler(event -> { Property selectedProperty = selectionModel.getSelectedObject(); if (selectedProperty != null) { modelForm.getForm().edit(selectedProperty.getValue()); } else { modelForm.getForm().clearValues(); } selectTableItem(selectedProperty); }); table.setSelectionModel(selectionModel); return layoutBuilder.build(); }
From source file:org.jboss.as.console.client.shared.subsys.activemq.JMSBridgeList.java
License:Open Source License
@SuppressWarnings("unchecked") Widget asWidget() {//from ww w.ja v a 2 s. c om TextColumn<Property> nameColumn = new TextColumn<Property>() { @Override public String getValue(Property node) { return node.getName(); } }; table.addColumn(nameColumn, "Name"); SecurityContext securityContext = Console.MODULES.getSecurityFramework() .getSecurityContext(presenter.getProxy().getNameToken()); ResourceDescription definition = presenter.getDescriptionRegistry().lookup(JMSBRIDGE_TEMPLATE); formAssets = new ModelNodeFormBuilder().setConfigOnly() // they are complex attributes .exclude("source-context", "target-context", "source-credential-reference", "target-credential-reference") .setResourceDescription(definition).setSecurityContext(securityContext) .addFactory("source-password", attributeDescription -> new PasswordBoxItem("source-password", "Source Password", false)) .addFactory("target-password", attributeDescription -> new PasswordBoxItem("target-password", "Target Password", false)) .build(); // this is the save operation when the user click at the "edit" link formAssets.getForm().setToolsCallback(new FormCallback() { @Override public void onSave(Map changeset) { presenter.onSaveJmsBridge(getSelectedEntity().getName(), changeset); } @Override public void onCancel(Object entity) { formAssets.getForm().cancel(); } }); // this filter is called at a later time, to resolve the selected item name // from the table list. JMSBridgeSelectionAwareContext jmsBridgeSelectionContext = new JMSBridgeSelectionAwareContext( presenter.getStatementContext(), this); AddressTemplate jmsBridgeTemplate = JMSBRIDGE_TEMPLATE .replaceWildcards(JMSBridgeSelectionAwareContext.SELECTED_ENTITY); sourceCredentialRefForm = createComplexForm("source-credential-reference"); targetCredentialRefForm = createComplexForm("target-credential-reference"); // cross validate the forms, as there are "alternatives" metadata for the password. formAssets.getForm().addFormValidator(new CredentialReferenceAlternativesFormValidation("source-password", sourceCredentialRefForm.getForm(), "Source Credential Reference", true)); sourceCredentialRefForm.getForm().addFormValidator(new CredentialReferenceAlternativesFormValidation( "source-password", formAssets.getForm(), "Attributes", false)); formAssets.getForm().addFormValidator(new CredentialReferenceAlternativesFormValidation("target-password", targetCredentialRefForm.getForm(), "Target Credential Reference", true)); sourceCredentialRefForm.getForm().addFormValidator(new CredentialReferenceAlternativesFormValidation( "target-password", formAssets.getForm(), "Attributes", false)); // there are two attributes source-context,target-context, they are of type=OBJECT and value-type=STRING // they store key=value properties // then, they are added as PropertyEditor sourceContextEditor = buildProperties("source-context", jmsBridgeSelectionContext, jmsBridgeTemplate); targetContextEditor = buildProperties("target-context", jmsBridgeSelectionContext, jmsBridgeTemplate); MultipleToOneLayout layout = new MultipleToOneLayout().setPlain(true).setHeadline("JMS Bridges") .setDescription(SafeHtmlUtils.fromString(definition.get(DESCRIPTION).asString())) .setMaster("", table).setMasterTools(tableButtons()) .addDetail(Console.CONSTANTS.common_label_attributes(), formAssets.asWidget()) .addDetail("Source Context", sourceContextEditor.asWidget()) .addDetail("Target Context", targetContextEditor.asWidget()) .addDetail("Source Credential Reference", sourceCredentialRefForm.asWidget()) .addDetail("Target Credential Reference", targetCredentialRefForm.asWidget()); selectionModel.addSelectionChangeHandler(event -> updatePropertiesData(null)); return layout.build(); }
From source file:org.jboss.as.console.client.shared.subsys.batch.ui.ThreadFactoriesPanel.java
License:Open Source License
@SuppressWarnings("unchecked") ThreadFactoriesPanel(final StatementContext statementContext, final SecurityContext securityContext, final BatchPresenter presenter) { ToolStrip tools = new ToolStrip(); tools.addToolButtonRight(new ToolButton(Console.CONSTANTS.common_label_add(), new ClickHandler() { @Override/*from www . ja va 2s . com*/ public void onClick(ClickEvent event) { presenter.launchAddThreadFactory(); } })); tools.addToolButtonRight(new ToolButton(Console.CONSTANTS.common_label_delete(), new ClickHandler() { @Override public void onClick(ClickEvent event) { final String name = selectionModel.getSelectedObject().getName(); Feedback.confirm(Console.MESSAGES.deleteTitle("Thread Factory"), Console.MESSAGES.deleteConfirm("Thread Factory '" + name + "'"), new Feedback.ConfirmationHandler() { @Override public void onConfirmation(boolean isConfirmed) { if (isConfirmed) { presenter.removeThreadFactory(name); } } }); } })); providesKey = new ProvidesKey<Property>() { @Override public Object getKey(Property item) { return item.getName(); } }; table = new DefaultCellTable<>(5, providesKey); dataProvider = new ListDataProvider<Property>(providesKey); dataProvider.addDataDisplay(table); selectionModel = new SingleSelectionModel<Property>(providesKey); table.setSelectionModel(selectionModel); TextColumn<Property> nameColumn = new TextColumn<Property>() { @Override public String getValue(Property node) { return node.getName(); } }; table.addColumn(nameColumn, "Name"); final BatchResourceForm details = new BatchResourceForm(BatchStore.THREAD_FACTORIES_ADDRESS, statementContext, securityContext) { @Override void onSave(Map<String, Object> changedValues) { presenter.modifyThreadFactory(selectionModel.getSelectedObject().getName(), changedValues); } }; selectionModel.addSelectionChangeHandler(new SelectionChangeEvent.Handler() { @Override public void onSelectionChange(SelectionChangeEvent event) { if (details.getForm() != null) { Property worker = selectionModel.getSelectedObject(); if (worker != null) { details.getForm().edit(worker.getValue()); } else { details.getForm().clearValues(); } } } }); MultipleToOneLayout layoutBuilder = new MultipleToOneLayout().setPlain(true).setHeadline("Thread Factories") .setDescription( SafeHtmlUtils.fromString("Please chose a thread factory from below for specific settings.")) .setMasterTools(tools).setMaster(Console.MESSAGES.available("Thread Factory"), table) .addDetail(Console.CONSTANTS.common_label_attributes(), details); initWidget(layoutBuilder.build()); }
From source file:org.jboss.as.console.client.shared.subsys.elytron.ui.ElytronGenericResourceView.java
License:Apache License
public Widget asWidget() { ToolStrip tools = new ToolStrip(); tools.addToolButtonRight(new ToolButton(Console.CONSTANTS.common_label_add(), event -> onAdd())); tools.addToolButtonRight(new ToolButton(Console.CONSTANTS.common_label_delete(), event -> { if (selectionModel.getSelectedObject() != null) { String name = selectionModel.getSelectedObject().getName(); Feedback.confirm(Console.MESSAGES.deleteTitle(title), Console.MESSAGES.deleteConfirm(title + " '" + name + "'"), isConfirmed -> { if (isConfirmed) { circuit.dispatch(new RemoveResourceGeneric(addressTemplate, name)); }// w ww.jav a2 s. c o m }); } })); ProvidesKey<Property> providesKey = Property::getName; table = new DefaultCellTable<>(5, providesKey); dataProvider = new ListDataProvider<>(providesKey); dataProvider.addDataDisplay(table); selectionModel = new SingleSelectionModel<>(providesKey); TextColumn<Property> nameColumn = new TextColumn<Property>() { @Override public String getValue(Property node) { return node.getName(); } }; table.addColumn(nameColumn, "Name"); DefaultPager pager = new DefaultPager(); pager.setDisplay(table); ModelNodeFormBuilder formBuilder = new ModelNodeFormBuilder().setConfigOnly().createValidators(true) .setResourceDescription(resourceDescription).exclude(excludes.toArray(new String[excludes.size()])) .setSecurityContext(securityContext); modelForm = formBuilder.build(); modelForm.getForm().addFormValidator((formItemList, formValidation) -> { addFormValidatorOnAddDialog(formItemList, formValidation); }); List<String> forItems = modelForm.getForm().getFormItemNames(); int numberOfFormItems = forItems.size(); MultipleToOneLayout layoutBuilder = new MultipleToOneLayout().setPlain(true).setHeadline(title) .setDescription(SafeHtmlUtils.fromString(resourceDescription.get(DESCRIPTION).asString())) .setMasterTools(tools).setMaster(Console.MESSAGES.available(title), table); if (numberOfFormItems > 0) { modelForm.getForm().setToolsCallback(new FormCallback() { @Override @SuppressWarnings("unchecked") public void onSave(final Map changeset) { circuit.dispatch(new ModifyResourceGeneric(addressTemplate, selectionModel.getSelectedObject().getName(), changeset)); } @Override public void onCancel(final Object entity) { modelForm.getForm().cancel(); } }); layoutBuilder.addDetail(Console.CONSTANTS.common_label_attributes(), modelForm.asWidget()); } Map<String, Widget> tabDetails = additionalTabDetails(); for (String detailName : tabDetails.keySet()) { layoutBuilder.addDetail(detailName, tabDetails.get(detailName)); } selectionModel.addSelectionChangeHandler(event -> { Property selectedProperty = selectionModel.getSelectedObject(); if (selectedProperty != null) { modelForm.getForm().edit(selectedProperty.getValue()); } else { modelForm.getForm().clearValues(); } selectTableItem(selectedProperty); }); table.setSelectionModel(selectionModel); return layoutBuilder.build(); }
From source file:org.jboss.as.console.client.shared.subsys.elytron.ui.JdbcRealmView.java
License:Apache License
public Widget asWidget() { ToolStrip tools = new ToolStrip(); tools.addToolButtonRight(new ToolButton(Console.CONSTANTS.common_label_add(), event -> onAdd())); tools.addToolButtonRight(new ToolButton(Console.CONSTANTS.common_label_delete(), event -> { if (selectionModel.getSelectedObject() != null) { String name = selectionModel.getSelectedObject().getName(); Feedback.confirm(Console.MESSAGES.deleteTitle("JDBC Realm"), Console.MESSAGES.deleteConfirm("JDBC Realm" + " '" + name + "'"), isConfirmed -> { if (isConfirmed) { circuit.dispatch(new RemoveResourceGeneric(ElytronStore.JDBC_REALM_ADDRESS, name)); }/*from w w w. j a v a 2 s . com*/ }); } })); ProvidesKey<Property> providesKey = Property::getName; table = new DefaultCellTable<>(5, providesKey); dataProvider = new ListDataProvider<>(providesKey); dataProvider.addDataDisplay(table); selectionModel = new SingleSelectionModel<>(providesKey); table.setSelectionModel(selectionModel); TextColumn<Property> nameColumn = new TextColumn<Property>() { @Override public String getValue(Property node) { return node.getName(); } }; table.addColumn(nameColumn, "Name"); DefaultPager pager = new DefaultPager(); pager.setDisplay(table); principalsQueryViewView = new JdbcRealmPrincipalsQueryView(circuit, resourceDescription, securityContext); MultipleToOneLayout layoutBuilder = new MultipleToOneLayout().setPlain(true).setHeadline("JDBC Realm") .setDescription(SafeHtmlUtils.fromString(resourceDescription.get(DESCRIPTION).asString())) .setMasterTools(tools).setMaster(Console.MESSAGES.available("JDBC Realm"), table) .addDetail("Principals Query", principalsQueryViewView.asWidget()); selectionModel.addSelectionChangeHandler(event -> { Property selected = selectionModel.getSelectedObject(); if (selected != null) { principalsQueryViewView.update(selected); } else { principalsQueryViewView.clearValues(); } }); table.setSelectionModel(selectionModel); return layoutBuilder.build(); }
From source file:org.jboss.as.console.client.shared.subsys.elytron.ui.LdapRealmView.java
License:Apache License
public Widget asWidget() { ToolStrip tools = new ToolStrip(); tools.addToolButtonRight(new ToolButton(Console.CONSTANTS.common_label_add(), event -> onAdd())); tools.addToolButtonRight(new ToolButton(Console.CONSTANTS.common_label_delete(), event -> { if (selectionModel.getSelectedObject() != null) { String name = selectionModel.getSelectedObject().getName(); Feedback.confirm(Console.MESSAGES.deleteTitle("LDAP Realm"), Console.MESSAGES.deleteConfirm("LDAP Realm" + " '" + name + "'"), isConfirmed -> { if (isConfirmed) { circuit.dispatch(new RemoveResourceGeneric(ElytronStore.LDAP_REALM_ADDRESS, name)); }//from w w w . jav a 2 s . c om }); } })); ProvidesKey<Property> providesKey = Property::getName; table = new DefaultCellTable<>(5, providesKey); dataProvider = new ListDataProvider<>(providesKey); dataProvider.addDataDisplay(table); selectionModel = new SingleSelectionModel<>(providesKey); table.setSelectionModel(selectionModel); TextColumn<Property> nameColumn = new TextColumn<Property>() { @Override public String getValue(Property node) { return node.getName(); } }; table.addColumn(nameColumn, "Name"); DefaultPager pager = new DefaultPager(); pager.setDisplay(table); identityMappingFormAsset = new ComplexAttributeForm("identity-mapping", securityContext, resourceDescription) .exclude("attribute-mapping", "new-identity-attributes", "otp-credential-mapper", "user-password-mapper", "x509-credential-mapper") .build(); ModelNode nodeIdenMapping = resourceDescription.get("attributes").get("identity-mapping").get("value-type"); ResourceDescription userPasswordMapperResource = new ResourceDescription(new ModelNode()); userPasswordMapperResource.get(ATTRIBUTES).set(nodeIdenMapping); userPasswordMapperFormAsset = new ComplexAttributeForm("user-password-mapper", securityContext, userPasswordMapperResource).build(); ResourceDescription otpCredentialMapperResource = new ResourceDescription(new ModelNode()); otpCredentialMapperResource.get(ATTRIBUTES).set(nodeIdenMapping); otpCredentialMapperFormAsset = new ComplexAttributeForm("otp-credential-mapper", securityContext, otpCredentialMapperResource).build(); ModelNodeFormBuilder formBuilder = new ModelNodeFormBuilder().setConfigOnly().exclude("identity-mapping") .setResourceDescription(resourceDescription).setSecurityContext(securityContext); modelForm = formBuilder.build(); modelForm.getForm().setToolsCallback(new FormCallback() { @Override @SuppressWarnings("unchecked") public void onSave(final Map changeset) { circuit.dispatch(new ModifyResourceGeneric(ElytronStore.LDAP_REALM_ADDRESS, selectionModel.getSelectedObject().getName(), changeset)); } @Override public void onCancel(final Object entity) { modelForm.getForm().cancel(); } }); identityAttributeMappingView = new IdentityAttributeMappingView(); newIdentityAttributesView = new NewIdentityAttributesView(); MultipleToOneLayout layoutBuilder = new MultipleToOneLayout().setPlain(true).setHeadline("LDAP Realm") .setDescription(SafeHtmlUtils.fromString(resourceDescription.get(DESCRIPTION).asString())) .setMasterTools(tools).setMaster(Console.MESSAGES.available("LDAP Realm"), table) .addDetail(Console.CONSTANTS.common_label_attributes(), modelForm.asWidget()) .addDetail("Identity Mapping", identityMappingFormAsset.asWidget()) .addDetail("Identity Attribute Mapping", identityAttributeMappingView.asWidget()) .addDetail("New Identity Attributes", newIdentityAttributesView.asWidget()) .addDetail("User Password Mapper", userPasswordMapperFormAsset.asWidget()) .addDetail("OTP Credential Mapper", otpCredentialMapperFormAsset.asWidget()); selectionModel.addSelectionChangeHandler(event -> { Property node = selectionModel.getSelectedObject(); if (node != null) { modelForm.getForm().edit(node.getValue()); if (node.getValue().hasDefined("identity-mapping")) identityMappingFormAsset.getForm().edit(node.getValue().get("identity-mapping")); if (node.getValue().get("identity-mapping").hasDefined("attribute-mapping")) identityAttributeMappingView .update(node.getValue().get("identity-mapping").get("attribute-mapping").asList()); else identityAttributeMappingView.clearValues(); if (node.getValue().get("identity-mapping").hasDefined("new-identity-attributes")) identityAttributeMappingView.update( node.getValue().get("identity-mapping").get("new-identity-attributes").asList()); else identityAttributeMappingView.clearValues(); if (node.getValue().get("identity-mapping").hasDefined("user-password-mapper")) userPasswordMapperFormAsset.getForm() .edit(node.getValue().get("identity-mapping").get("user-password-mapper")); else userPasswordMapperFormAsset.getForm().clearValues(); if (node.getValue().get("identity-mapping").hasDefined("otp-credential-mapper")) otpCredentialMapperFormAsset.getForm() .edit(node.getValue().get("identity-mapping").get("otp-credential-mapper")); else otpCredentialMapperFormAsset.getForm().clearValues(); } else { modelForm.getForm().clearValues(); identityMappingFormAsset.getForm().clearValues(); identityAttributeMappingView.clearValues(); newIdentityAttributesView.clearValues(); userPasswordMapperFormAsset.getForm().clearValues(); otpCredentialMapperFormAsset.getForm().clearValues(); } }); table.setSelectionModel(selectionModel); return layoutBuilder.build(); }