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(); }
@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(); }
@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(); }