public void setProviderDetails(MessagingProvider provider) { serverName.setHTML(Console.MESSAGES.subsys_messaging(provider.getName())); form.edit(provider); form.setEnabled(false); addrDetails.setProvider(provider); }
@Override public void launchNewPropertyDialoge(String reference) { window = new DefaultWindow(Console.MESSAGES.createTitle("Config Property")); window.setWidth(480); window.setHeight(360); window.trapWidget(new NewPropertyWizard(this, "").asWidget()); window.setGlassEnabled(true); window.center(); }
public void askToActivateSubsystem() { final DefaultWindow window = new DefaultWindow(Console.CONSTANTS.subsys_osgi()); window.setWidth(320); window.setHeight(140); window.trapWidget( new MessageWindow( Console.MESSAGES.subsys_osgi_activate(), new MessageWindow.Result() { @Override public void result(boolean result) { window.hide(); if (result) activateSubsystem(); } }) .asWidget()); window.setGlassEnabled(true); window.center(); }
protected void activateSubsystem() { // Since it takes a few moments for the subsystem to activate we're showing a window indicating // this final DefaultWindow window = new DefaultWindow(Console.CONSTANTS.subsys_osgi()); window.setWidth(320); window.setHeight(140); window.trapWidget(new HTML(Console.MESSAGES.subsys_osgi_activating())); window.setGlassEnabled(true); window.center(); AddressBinding address = bundleMetaData.getAddress(); ModelNode operation = address.asSubresource( RuntimeBaseAddress.get()); // get an operation on the parent address... operation.get(ModelDescriptionConstants.OP).set("activate"); dispatcher.execute( new DMRAction(operation), new SimpleCallback<DMRResponse>() { @Override public void onSuccess(DMRResponse result) { Timer t = new Timer() { @Override public void run() { window.hide(); onReset(); } }; t.schedule(4000); } @Override public void onFailure(Throwable caught) { window.hide(); super.onFailure(caught); } }); }
@SuppressWarnings("unchecked") Widget asWidget() { secTable = new DefaultCellTable<>(8, item -> item.getPattern() + "_" + item.getRole()); secProvider = new ListDataProvider<>(); secProvider.addDataDisplay(secTable); Column<ActivemqSecurityPattern, String> roleColumn = new Column<ActivemqSecurityPattern, String>(new TextCell()) { @Override public String getValue(ActivemqSecurityPattern object) { return object.getRole(); } }; Column<ActivemqSecurityPattern, String> patternColumn = new Column<ActivemqSecurityPattern, String>(new TextCell()) { @Override public String getValue(ActivemqSecurityPattern object) { return object.getPattern(); } }; secTable.addColumn(patternColumn, "Pattern"); secTable.addColumn(roleColumn, "Role"); form = new Form<>(ActivemqSecurityPattern.class); form.setNumColumns(2); form.bind(secTable); CheckBoxItem send = new CheckBoxItem("send", "Send?"); CheckBoxItem consume = new CheckBoxItem("consume", "Consume?"); CheckBoxItem manage = new CheckBoxItem("manage", "Manage?"); CheckBoxItem createDQ = new CheckBoxItem("createDurableQueue", "CreateDurable?"); CheckBoxItem deleteDQ = new CheckBoxItem("deleteDurableQueue", "DeleteDurable?"); CheckBoxItem createNDQ = new CheckBoxItem("createNonDurableQueue", "CreateNonDurable?"); CheckBoxItem deleteNDQ = new CheckBoxItem("deleteNonDurableQueue", "DeleteNonDurable?"); form.setFields(send, consume, manage); form.setFieldsInGroup( Console.CONSTANTS.common_label_advanced(), new DisclosureGroupRenderer(), createDQ, deleteDQ, createNDQ, deleteNDQ); FormHelpPanel helpPanel = new FormHelpPanel( () -> { ModelNode address = Baseadress.get(); address.add("subsystem", "messaging-activemq"); address.add("server", "*"); address.add("security-setting", "*"); address.add("role", "*"); return address; }, form); FormToolStrip<ActivemqSecurityPattern> formTools = new FormToolStrip<>( form, new FormToolStrip.FormCallback<ActivemqSecurityPattern>() { @Override public void onSave(Map<String, Object> changeset) { presenter.onSaveSecDetails(form.getEditedEntity(), changeset); } @Override public void onDelete(ActivemqSecurityPattern entity) {} }); ToolStrip tableTools = new ToolStrip(); ToolButton addBtn = new ToolButton( Console.CONSTANTS.common_label_add(), event -> presenter.launchNewSecDialogue()); addBtn.ensureDebugId(Console.DEBUG_CONSTANTS.debug_label_add_securityDetails()); tableTools.addToolButtonRight(addBtn); ToolButton removeBtn = new ToolButton( Console.CONSTANTS.common_label_delete(), event -> Feedback.confirm( Console.MESSAGES.deleteTitle("Security Config"), Console.MESSAGES.deleteConfirm("Security Config"), isConfirmed -> { if (isConfirmed) { presenter.onDeleteSecDetails(form.getEditedEntity()); } })); tableTools.addToolButtonRight(removeBtn); VerticalPanel formPanel = new VerticalPanel(); formPanel.addStyleName("fill-layout-width"); formPanel.add(helpPanel.asWidget()); formPanel.add(formTools.asWidget()); formPanel.add(form.asWidget()); serverName = new ContentHeaderLabel(); MultipleToOneLayout layout = new MultipleToOneLayout() .setPlain(true) .setHeadlineWidget(serverName) .setDescription( "A security setting allows sets of permissions to be defined against queues based on their address.") .setMaster("Available security settings", secTable) .setMasterTools(tableTools.asWidget()) .setDetail("Details", formPanel); return layout.build(); }
private ToolStrip setupTableButtons() { ToolStrip tools = new ToolStrip(); ToolButton addButton = new ToolButton( Console.CONSTANTS.common_label_add(), event -> { ModelNodeFormBuilder.FormAssets addFormAssets = new ModelNodeFormBuilder() .setResourceDescription(resourceDescription) .setCreateMode(true) .unsorted() .exclude("permissions") .setCreateNameAttribute(false) .setSecurityContext(securityContext) .build(); addFormAssets.getForm().setEnabled(true); DefaultWindow dialog = new DefaultWindow(Console.MESSAGES.newTitle("Permission")); AddResourceDialog.Callback callback = new AddResourceDialog.Callback() { @Override public void onAdd(ModelNode payload) { circuit.dispatch( new AddListAttribute( ElytronStore.CONSTANT_PERMISSION_MAPPER_ADDRESS, "permissions", permissionMapping, payload)); dialog.hide(); } @Override public void onCancel() { dialog.hide(); } }; AddResourceDialog addDialog = new AddResourceDialog(addFormAssets, resourceDescription, callback); dialog.setWidth(480); dialog.setHeight(360); dialog.setWidget(addDialog); dialog.setGlassEnabled(true); dialog.center(); }); ToolButton removeButton = new ToolButton( Console.CONSTANTS.common_label_delete(), event -> { final ModelNode selection = selectionModel.getSelectedObject(); if (selection != null) { Feedback.confirm( "Filter", Console.MESSAGES.deleteConfirm( "Permission " + selection.get("class-name").asString()), isConfirmed -> { if (isConfirmed) { circuit.dispatch( new RemoveListAttribute( ElytronStore.CONSTANT_PERMISSION_MAPPER_ADDRESS, permissionMapping, "permissions", selection)); } }); } }); tools.addToolButtonRight(addButton); tools.addToolButtonRight(removeButton); return tools; }
private void _showAddDialog( final ModelNode address, boolean isSingleton, SecurityContext securityContext, ModelNode description) { List<Property> tuples = address.asPropertyList(); String type = ""; if (tuples.size() > 0) { type = tuples.get(tuples.size() - 1).getName(); } ModelNodeFormBuilder builder = new ModelNodeFormBuilder() .setCreateMode(true) .setSingleton(isSingleton) .setResourceDescription(description) .setSecurityContext(securityContext); ModelNodeFormBuilder.FormAssets assets = builder.build(); final ModelNodeForm form = assets.getForm(); form.setEnabled(true); if (form.hasWritableAttributes()) { final DefaultWindow window = new DefaultWindow(Console.MESSAGES.createResource(type)); window.addStyleName("browser-view"); DialogueOptions options = new DialogueOptions( new ClickHandler() { @Override public void onClick(ClickEvent event) { // save FormValidation validation = form.validate(); if (!validation.hasErrors()) { presenter.onAddChildResource(address, form.getUpdatedEntity()); window.hide(); } } }, new ClickHandler() { @Override public void onClick(ClickEvent event) { // cancel window.hide(); } }); VerticalPanel layout = new VerticalPanel(); layout.setStyleName("fill-layout-width"); ModelNode opDescription = description.get("operations").get("add").get("description"); ContentDescription text = new ContentDescription(opDescription.asString()); layout.add(text); layout.add(assets.asWidget()); WindowContentBuilder content = new WindowContentBuilder(layout, options); window.trapWidget(content.build()); window.setGlassEnabled(true); window.setWidth(480); window.setHeight(360); window.center(); } else { // no writable attributes Feedback.alert( Console.CONSTANTS.cannotCreateChildResource(), Console.MESSAGES.noConfigurableAttributes(address.toString())); } }
Widget asWidget() { ToolStrip topLevelTools = new ToolStrip(); topLevelTools.addToolButtonRight( new ToolButton( Console.CONSTANTS.common_label_add(), new ClickHandler() { @Override public void onClick(ClickEvent event) { presenter.launchNewAdminWizard(); } })); ClickHandler clickHandler = new ClickHandler() { @Override public void onClick(ClickEvent event) { final AdminObject selection = getCurrentSelection(); if (selection != null) { Feedback.confirm( Console.MESSAGES.deleteTitle("Admin Object"), Console.MESSAGES.deleteConfirm("Admin Object" + selection.getJndiName()), new Feedback.ConfirmationHandler() { @Override public void onConfirmation(boolean isConfirmed) { if (isConfirmed) { presenter.onRemoveAdmin(selection); } } }); } } }; ToolButton deleteBtn = new ToolButton(Console.CONSTANTS.common_label_delete()); deleteBtn.addClickHandler(clickHandler); topLevelTools.addToolButtonRight(deleteBtn); disableBtn = new ToolButton( Console.CONSTANTS.common_label_disable(), new ClickHandler() { @Override public void onClick(ClickEvent event) { final AdminObject selection = getCurrentSelection(); if (selection != null) { selection.setEnabled(!selection.isEnabled()); Feedback.confirm( Console.MESSAGES.modify("Admin Object"), Console.MESSAGES.modifyConfirm("Admin Object " + selection.getJndiName()), new Feedback.ConfirmationHandler() { @Override public void onConfirmation(boolean isConfirmed) { if (isConfirmed) { presenter.enOrDisbaleAdminObject(currentAdapter, selection); } } }); } } }); topLevelTools.addToolButtonRight(disableBtn); // ------- table = new DefaultCellTable<AdminObject>( 10, new ProvidesKey<AdminObject>() { @Override public Object getKey(AdminObject item) { return item.getJndiName(); } }); dataProvider = new ListDataProvider<AdminObject>(); dataProvider.addDataDisplay(table); TextColumn<AdminObject> nameColumn = new TextColumn<AdminObject>() { @Override public String getValue(AdminObject record) { return record.getName(); } }; Column<AdminObject, ImageResource> statusColumn = new Column<AdminObject, ImageResource>(new ImageResourceCell()) { @Override public ImageResource getValue(AdminObject ra) { ImageResource res = null; if (ra.isEnabled()) res = Icons.INSTANCE.status_good(); else res = Icons.INSTANCE.status_bad(); return res; } }; table.addColumn(nameColumn, "Name"); table.addColumn(statusColumn, "Enabled?"); // --- configProperties = new PropertyEditor(this, true); // ---- VerticalPanel formpanel = new VerticalPanel(); formpanel.setStyleName("fill-layout-width"); Form<AdminObject> form = new Form<AdminObject>(AdminObject.class); form.setNumColumns(2); TextItem name = new TextItem("name", "Name"); TextBoxItem jndiItem = new TextBoxItem("jndiName", "JNDI"); TextBoxItem classItem = new TextBoxItem("adminClass", "Class Name"); // CheckBoxItem enabled = new CheckBoxItem("enabled", "Enabled?"); form.setFields(name, jndiItem, classItem); form.setEnabled(false); form.bind(table); FormToolStrip<AdminObject> tools = new FormToolStrip<AdminObject>( form, new FormToolStrip.FormCallback<AdminObject>() { @Override public void onSave(Map<String, Object> changeset) { presenter.onSaveAdmin(getCurrentSelection(), changeset); } @Override public void onDelete(AdminObject entity) { // not possible } }); tools.providesDeleteOp(false); final FormHelpPanel helpPanel = new FormHelpPanel( new FormHelpPanel.AddressCallback() { @Override public ModelNode getAddress() { ModelNode address = Baseadress.get(); address.add("subsystem", "resource-adapters"); address.add("resource-adapter", "*"); address.add("admin-objects", "*"); return address; } }, form); formpanel.add(tools.asWidget()); formpanel.add(helpPanel.asWidget()); formpanel.add(form.asWidget()); table .getSelectionModel() .addSelectionChangeHandler( new SelectionChangeEvent.Handler() { public void onSelectionChange(SelectionChangeEvent event) { AdminObject selection = getCurrentSelection(); configProperties.setProperties("", selection.getProperties()); String nextState = selection.isEnabled() ? Console.CONSTANTS.common_label_disable() : Console.CONSTANTS.common_label_enable(); disableBtn.setText(nextState); } }); // ---- headline = new HTML("HEADLINE"); headline.setStyleName("content-header-label"); MultipleToOneLayout layout = new MultipleToOneLayout() .setPlain(true) .setHeadlineWidget(headline) .setTitle("TITLE") .setDescription(Console.CONSTANTS.subsys_jca_adminobject_desc()) .setMaster(Console.MESSAGES.available("Admin Objects"), table) .setMasterTools(topLevelTools.asWidget()) .addDetail("Attributes", formpanel) .addDetail("Properties", configProperties.asWidget()); configProperties.setAllowEditProps(false); return layout.build(); }
@Override public Widget createWidget() { ProvidesKey<DeploymentRecord> key = new ProvidesKey<DeploymentRecord>() { @Override public Object getKey(DeploymentRecord deploymentRecord) { return deploymentRecord.getName(); } }; deploymentTable = new DefaultCellTable<DeploymentRecord>(8, key); final SingleSelectionModel<DeploymentRecord> selectionModel = new SingleSelectionModel<DeploymentRecord>(); deploymentTable.setSelectionModel(selectionModel); dataProvider = new ListDataProvider<DeploymentRecord>(key); dataProvider.addDataDisplay(deploymentTable); // --- final ToolStrip toolStrip = new ToolStrip(); ToolButton addBtn = new ToolButton( Console.CONSTANTS.common_label_add(), new ClickHandler() { @Override public void onClick(ClickEvent event) { presenter.launchNewDeploymentDialoge(null, false); } }); addBtn.ensureDebugId(Console.DEBUG_CONSTANTS.debug_label_add_deploymentListView()); toolStrip.addToolButtonRight(addBtn); toolStrip.addToolButtonRight( new ToolButton( Console.CONSTANTS.common_label_remove(), new ClickHandler() { @Override public void onClick(ClickEvent clickEvent) { DeploymentRecord selection = selectionModel.getSelectedObject(); if (selection != null) { new DeploymentCommandDelegate( DeploymentListView.this.presenter, DeploymentCommand.REMOVE_FROM_STANDALONE) .execute(selection); } } })); toolStrip.addToolButtonRight( new ToolButton( Console.CONSTANTS.common_label_enOrDisable(), new ClickHandler() { @Override public void onClick(ClickEvent clickEvent) { DeploymentRecord selection = selectionModel.getSelectedObject(); if (selection != null) { new DeploymentCommandDelegate( DeploymentListView.this.presenter, DeploymentCommand.ENABLE_DISABLE) .execute(selection); } } })); toolStrip.addToolButtonRight( new ToolButton( "Update", new ClickHandler() { @Override public void onClick(ClickEvent clickEvent) { DeploymentRecord selection = selectionModel.getSelectedObject(); if (selection != null) { new DeploymentCommandDelegate( DeploymentListView.this.presenter, DeploymentCommand.UPDATE_CONTENT) .execute(selection); } } })); filter = new DeploymentFilter(dataProvider); toolStrip.addToolWidget(filter.asWidget()); TitleColumn dplNameColumn = new TitleColumn() {}; TextColumn<DeploymentRecord> dplRuntimeColumn = new TextColumn<DeploymentRecord>() { @Override public String getValue(DeploymentRecord record) { String title = null; if (record.getRuntimeName().length() > 27) title = record.getRuntimeName().substring(0, 26) + "..."; else title = record.getRuntimeName(); return title; } }; deploymentTable.addColumn(dplNameColumn, Console.CONSTANTS.common_label_name()); deploymentTable.addColumn(dplRuntimeColumn, Console.CONSTANTS.common_label_runtimeName()); deploymentTable.addColumn(makeEnabledColumn(), Console.CONSTANTS.common_label_enabled()); Form<DeploymentRecord> form = new Form<DeploymentRecord>(DeploymentRecord.class); form.setNumColumns(2); form.setEnabled(true); TextAreaItem name = new TextAreaItem("name", "Name"); TextAreaItem runtimeName = new TextAreaItem("runtimeName", "Runtime Name"); // TextBoxItem sha = new TextBoxItem("sha", "SHA"); form.setFields(name, runtimeName); form.bind(deploymentTable); MultipleToOneLayout layout = new MultipleToOneLayout() .setTitle(Console.CONSTANTS.common_label_deployments()) .setHeadline(Console.CONSTANTS.common_label_deployments()) .setDescription( "Currently deployed application components. Deployments that have been added through the filesystem will not be managable through the web interface.") .setMaster(Console.MESSAGES.available("Deployments"), deploymentTable) .setMasterTools(toolStrip) .setDetail(Console.CONSTANTS.common_label_selection(), form.asWidget()); return layout.build(); }
Widget asWidget() { table = new DefaultCellTable<JGroupsProtocol>( 6, new ProvidesKey<JGroupsProtocol>() { @Override public Object getKey(JGroupsProtocol item) { return item.getType(); } }); dataProvider = new ListDataProvider<JGroupsProtocol>(); dataProvider.addDataDisplay(table); TextColumn<JGroupsProtocol> type = new TextColumn<JGroupsProtocol>() { @Override public String getValue(JGroupsProtocol record) { return record.getType(); } }; table.addColumn(type, "Type"); ToolStrip toolstrip = new ToolStrip(); ToolButton addBtn = new ToolButton( Console.CONSTANTS.common_label_append(), new ClickHandler() { @Override public void onClick(ClickEvent event) { presenter.launchNewProtocolWizard(); } }); toolstrip.addToolButtonRight(addBtn); ToolButton removeBtn = new ToolButton( Console.CONSTANTS.common_label_remove(), new ClickHandler() { @Override public void onClick(ClickEvent event) { Feedback.confirm( Console.MESSAGES.deleteTitle("Protocol"), Console.MESSAGES.deleteConfirm("Protocol"), new Feedback.ConfirmationHandler() { @Override public void onConfirmation(boolean isConfirmed) { if (isConfirmed) presenter.onDeleteProtocol(form.getEditedEntity()); } }); } }); toolstrip.addToolButtonRight(removeBtn); // ------ this.propertyEditor = new PropertyEditor(presenter, true); // ------ form = new Form<JGroupsProtocol>(JGroupsProtocol.class); form.setNumColumns(2); TextItem typeField = new TextItem("type", "Type"); TextBoxItem socket = new TextBoxItem("socketBinding", "Socket Binding"); form.setFields(typeField, socket); form.setEnabled(false); FormHelpPanel helpPanel = new FormHelpPanel( new FormHelpPanel.AddressCallback() { @Override public ModelNode getAddress() { ModelNode address = Baseadress.get(); address.add("subsystem", "jgroups"); address.add("stack", "*"); address.add("protocol", "*"); return address; } }, form); FormToolStrip<JGroupsProtocol> formToolStrip = new FormToolStrip<JGroupsProtocol>( form, new FormToolStrip.FormCallback<JGroupsProtocol>() { @Override public void onSave(Map<String, Object> changeset) { presenter.onSaveProtocol(form.getEditedEntity(), changeset); } @Override public void onDelete(JGroupsProtocol entity) {} }); formToolStrip.providesDeleteOp(false); Widget detail = new FormLayout().setForm(form).setHelp(helpPanel).setSetTools(formToolStrip).build(); headline = new HTML(); headline.setStyleName("content-header-label"); Widget panel = new MultipleToOneLayout() .setPlain(true) .setTitle("JGroups") .setHeadlineWidget(headline) .setDescription(Console.CONSTANTS.subsys_jgroups_protocol_desc()) .setMaster(Console.MESSAGES.available("Protocols"), table) .setMasterTools(toolstrip.asWidget()) .addDetail("Attributes", detail) .addDetail("Properties", propertyEditor.asWidget()) .build(); form.bind(table); propertyEditor.setAllowEditProps(false); table .getSelectionModel() .addSelectionChangeHandler( new SelectionChangeEvent.Handler() { @Override public void onSelectionChange(SelectionChangeEvent event) { JGroupsProtocol currentSelection = getCurrentSelection(); List<PropertyRecord> properties = currentSelection.getProperties(); if (properties != null) propertyEditor.setProperties( selectedStack.getName() + "_#_" + currentSelection.getType(), properties); else propertyEditor.setProperties( selectedStack.getName() + "_#_" + currentSelection.getType(), Collections.EMPTY_LIST); } }); return panel; }
@Override public String getErrMessage() { return Console.MESSAGES.common_validation_heapSize(); }
@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); // 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(); }
@SuppressWarnings("unchecked") Widget asWidget() { serverName = new ContentHeaderLabel(); table = new DefaultCellTable<>(10, ActivemqDivert::getRoutingName); provider = new ListDataProvider<>(); provider.addDataDisplay(table); Column<ActivemqDivert, String> name = new Column<ActivemqDivert, String>(new TextCell()) { @Override public String getValue(ActivemqDivert object) { return object.getRoutingName(); } }; Column<ActivemqDivert, String> from = new Column<ActivemqDivert, String>(new TextCell()) { @Override public String getValue(ActivemqDivert object) { return object.getDivertAddress(); } }; Column<ActivemqDivert, String> to = new Column<ActivemqDivert, String>(new TextCell()) { @Override public String getValue(ActivemqDivert object) { return object.getForwardingAddress(); } }; table.addColumn(name, "Name"); table.addColumn(from, "From"); table.addColumn(to, "To"); ToolStrip tools = new ToolStrip(); tools.addToolButtonRight( new ToolButton( Console.CONSTANTS.common_label_add(), clickEvent -> presenter.launchNewDivertWizard())); tools.addToolButtonRight( new ToolButton( Console.CONSTANTS.common_label_remove(), clickEvent -> Feedback.confirm( Console.MESSAGES.deleteTitle("Divert"), Console.MESSAGES.deleteConfirm( "Divert " + getSelectedEntity().getRoutingName()), isConfirmed -> { if (isConfirmed) { presenter.onDeleteDivert(getSelectedEntity().getRoutingName()); } }))); divertForm = new DivertForm( presenter, new FormToolStrip.FormCallback<ActivemqDivert>() { @Override public void onSave(Map<String, Object> changeset) { presenter.onSaveDivert(getSelectedEntity().getRoutingName(), changeset); } @Override public void onDelete(ActivemqDivert entity) {} }); MultipleToOneLayout layout = new MultipleToOneLayout() .setPlain(true) .setHeadlineWidget(serverName) .setDescription(Console.CONSTANTS.divertDescription()) .setMaster("Diverts", table) .setMasterTools(tools) .setDetail("Details", divertForm.asWidget()); divertForm.getForm().bind(table); return layout.build(); }
private ToolStrip mainTableTools() { ToolStrip tools = new ToolStrip(); ToolButton addButton = new ToolButton( Console.CONSTANTS.common_label_add(), event -> { ModelNodeFormBuilder.FormAssets addFormAssets = new ModelNodeFormBuilder() .setResourceDescription(resourceDescription) .setCreateMode(true) .unsorted() .setCreateNameAttribute(false) .setSecurityContext(securityContext) .build(); addFormAssets.getForm().setEnabled(true); addFormAssets .getForm() .addFormValidator( (formItems, formValidation) -> { // at least one field is necessary to fill boolean allEmpty = true; for (FormItem formItem : formItems) { if (!formItem.isUndefined()) { allEmpty = false; break; } } if (allEmpty) { formValidation.addError("match-abstract-type"); FormItem mechanismNameFormItem = formItem(formItems, "match-abstract-type"); mechanismNameFormItem.setErrMessage( "At least one field must contain valid values."); mechanismNameFormItem.setErroneous(true); } }); DefaultWindow dialog = new DefaultWindow(Console.MESSAGES.newTitle("Match Rule")); AddResourceDialog.Callback callback = new AddResourceDialog.Callback() { @Override public void onAdd(ModelNode payload) { for (Property node : payload.asPropertyList()) { // remove undefined attributes if (!node.getValue().isDefined()) { payload.remove(node.getName()); } } circuit.dispatch( new AddListAttribute( ElytronStore.AUTHENTICATION_CONTEXT_ADDRESS, MATCH_RULES, authContextName, payload)); dialog.hide(); } @Override public void onCancel() { dialog.hide(); } }; AddResourceDialog addDialog = new AddResourceDialog(addFormAssets, resourceDescription, callback); dialog.setWidth(480); dialog.setHeight(510); dialog.setWidget(addDialog); dialog.setGlassEnabled(true); dialog.center(); }); ToolButton removeButton = new ToolButton( Console.CONSTANTS.common_label_delete(), event -> { final ModelNode selection = selectionModel.getSelectedObject(); if (selection != null) { Feedback.confirm( "Match Rule", Console.MESSAGES.deleteConfirm("Match Rule " + selection.asString()), isConfirmed -> { if (isConfirmed) { circuit.dispatch( new RemoveListAttribute( ElytronStore.AUTHENTICATION_CONTEXT_ADDRESS, authContextName, MATCH_RULES, selection)); } }); } }); tools.addToolButtonRight(addButton); tools.addToolButtonRight(removeButton); return tools; }
Widget asWidget() { table = new DefaultCellTable<MailSession>( 8, new ProvidesKey<MailSession>() { @Override public Object getKey(MailSession item) { return item.getJndiName(); } }); dataProvider = new ListDataProvider<MailSession>(); dataProvider.addDataDisplay(table); TextColumn<MailSession> jndiName = new TextColumn<MailSession>() { @Override public String getValue(MailSession record) { return record.getJndiName(); } }; Column<MailSession, MailSession> option = new Column<MailSession, MailSession>( new ViewLinkCell<MailSession>( Console.CONSTANTS.common_label_view(), new ActionCell.Delegate<MailSession>() { @Override public void execute(MailSession selection) { presenter .getPlaceManager() .revealPlace( new PlaceRequest(NameTokens.MailPresenter) .with("name", selection.getJndiName())); } })) { @Override public MailSession getValue(MailSession manager) { return manager; } }; table.addColumn(jndiName, "JNDI Name"); table.addColumn(option, "Option"); ToolStrip toolstrip = new ToolStrip(); ToolButton addBtn = new ToolButton( Console.CONSTANTS.common_label_add(), new ClickHandler() { @Override public void onClick(ClickEvent event) { presenter.launchNewSessionWizard(); } }); addBtn.ensureDebugId(Console.DEBUG_CONSTANTS.debug_label_add_mailSessionView()); toolstrip.addToolButtonRight(addBtn); ToolButton removeBtn = new ToolButton( Console.CONSTANTS.common_label_remove(), new ClickHandler() { @Override public void onClick(ClickEvent event) { Feedback.confirm( Console.MESSAGES.deleteTitle("Mail Session"), Console.MESSAGES.deleteConfirm("Mail Session"), new Feedback.ConfirmationHandler() { @Override public void onConfirmation(boolean isConfirmed) { if (isConfirmed) presenter.onDelete(form.getEditedEntity()); } }); } }); removeBtn.ensureDebugId(Console.DEBUG_CONSTANTS.debug_label_remove_mailSessionView()); toolstrip.addToolButtonRight(removeBtn); // ------ form = new Form<MailSession>(MailSession.class); form.setNumColumns(2); TextItem jndi = new TextItem("jndiName", "JNDI Name"); CheckBoxItem debug = new CheckBoxItem("debug", "Debug Enabled?"); TextBoxItem from = new TextBoxItem("from", "Default From"); form.setFields(jndi, debug, from); form.setEnabled(false); FormHelpPanel helpPanel = new FormHelpPanel( new FormHelpPanel.AddressCallback() { @Override public ModelNode getAddress() { ModelNode address = Baseadress.get(); address.add("subsystem", "mail"); address.add("mail-session", "*"); return address; } }, form); FormToolStrip<MailSession> formToolStrip = new FormToolStrip<MailSession>( form, new FormToolStrip.FormCallback<MailSession>() { @Override public void onSave(Map<String, Object> changeset) { presenter.onSave(form.getEditedEntity(), changeset); } @Override public void onDelete(MailSession entity) {} }); formToolStrip.providesDeleteOp(false); Widget detail = new FormLayout().setForm(form).setHelp(helpPanel).build(); Widget panel = new MultipleToOneLayout() .setPlain(true) .setTitle("Mail") .setHeadline("Mail Sessions") .setDescription(Console.CONSTANTS.subsys_mail_session_desc()) .setMaster(Console.MESSAGES.available("Mail Session"), table) .setMasterTools(toolstrip.asWidget()) .setDetailTools(formToolStrip.asWidget()) .setDetail(Console.CONSTANTS.common_label_selection(), detail) .build(); form.bind(table); return panel; }