Example usage for com.google.gwt.view.client SingleSelectionModel SingleSelectionModel

List of usage examples for com.google.gwt.view.client SingleSelectionModel SingleSelectionModel

Introduction

In this page you can find the example usage for com.google.gwt.view.client SingleSelectionModel SingleSelectionModel.

Prototype

public SingleSelectionModel(ProvidesKey<T> keyProvider) 

Source Link

Document

Constructs a SingleSelectionModel with the given key provider.

Usage

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);/*from ww  w  .ja  v  a 2 s . co  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.runtime.logging.files.LogFilesTable.java

License:Open Source License

@SuppressWarnings("unchecked")
public LogFilesTable(final Dispatcher circuit, final LogFilesPresenter presenter) {

    VerticalPanel panel = new VerticalPanel();
    panel.addStyleName("rhs-content-panel");
    panel.getElement().getStyle().setMarginBottom(0, PX);

    // header/*w  ww.  j av  a 2s  .  c  o  m*/
    panel.add(new ContentHeaderLabel("Log Viewer"));
    panel.add(new ContentDescription(Console.CONSTANTS.logFilesOfSelectedServer()));

    // toolbar
    ToolStrip tools = new ToolStrip();
    HTML label = new HTML(Console.CONSTANTS.commom_label_filter() + ":&nbsp;");
    label.getElement().setAttribute("style", "padding-top:8px;");
    final TextBox filter = new TextBox();
    filter.setMaxLength(30);
    filter.setVisibleLength(20);
    filter.getElement().setAttribute("style", "float:right; width:120px;");
    filter.addKeyUpHandler(new KeyUpHandler() {
        @Override
        public void onKeyUp(KeyUpEvent keyUpEvent) {
            String prefix = filter.getText();
            if (prefix != null && !prefix.equals("")) {
                // filter by prefix
                filterByPrefix(prefix);
            } else {
                clearFilter();
            }
        }
    });
    setId(filter, BASE_ID, "filter");
    tools.addToolWidget(label);
    tools.addToolWidget(filter);

    final ToolButton download = new ToolButton("Download", new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) {
            ModelNode logFile = selectionModel.getSelectedObject();
            if (logFile != null) {
                circuit.dispatch(new DownloadLogFile(logFile.get(FILE_NAME).asString()));
            }
        }
    });
    download.setEnabled(false);
    // actually the attribute 'stream' is relevant for download, however we need to pass an operation here
    download.setOperationAddress("/{implicit.host}/{selected.server}/subsystem=logging/log-file=*",
            "read-log-file");
    setId(download, BASE_ID, "download");
    tools.addToolButtonRight(download);

    final ToolButton view = new ToolButton(Console.CONSTANTS.common_label_view(), new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) {
            ModelNode logFile = selectionModel.getSelectedObject();
            if (logFile != null) {
                String name = logFile.get(FILE_NAME).asString();
                int fileSize = logFile.get(FILE_SIZE).asInt();
                presenter.onStreamLogFile(name, fileSize);
            }
        }
    });
    view.setEnabled(false);
    view.setOperationAddress("/{implicit.host}/{selected.server}/subsystem=logging/log-file=*",
            "read-log-file");
    setId(view, BASE_ID, "view");
    tools.addToolButtonRight(view);

    final ToolButton refresh = new ToolButton(Console.CONSTANTS.common_label_refresh(),
            event -> circuit.dispatch(new ReadLogFiles()));
    refresh.setOperationAddress("/{implicit.host}/{selected.server}/subsystem=logging", "read-resource");
    setId(refresh, BASE_ID, "refresh");
    tools.addToolButtonRight(refresh);

    panel.add(tools);

    // table
    backup = new ArrayList<>();
    ProvidesKey<ModelNode> providesKey = new ProvidesKey<ModelNode>() {
        @Override
        public Object getKey(ModelNode item) {
            return item.get(FILE_NAME);
        }
    };
    selectionModel = new SingleSelectionModel<>(providesKey);
    selectionModel.addSelectionChangeHandler(new SelectionChangeEvent.Handler() {
        @Override
        public void onSelectionChange(SelectionChangeEvent event) {
            download.setEnabled(selectionModel.getSelectedObject() != null);
            view.setEnabled(selectionModel.getSelectedObject() != null);
        }
    });
    table = new ModelNodeCellTable(10, providesKey);
    table.setSelectionModel(selectionModel);
    dataProvider = new ListDataProvider<>(providesKey);
    dataProvider.addDataDisplay(table);
    ColumnSortEvent.ListHandler<ModelNode> sortHandler = new ColumnSortEvent.ListHandler<ModelNode>(
            dataProvider.getList());
    table.addColumnSortHandler(sortHandler);
    // TODO Find a way to combine the double click handler with RBAC like
    // foo.setOperationAddress("/{implicit.host}/{selected.server}/subsystem=logging/log-file=*", "read-log-file");
    //        table.addCellPreviewHandler(new CellPreviewEvent.Handler<ModelNode>() {
    //            @Override
    //            public void onCellPreview(CellPreviewEvent<ModelNode> event) {
    //                NativeEvent nativeEvent = event.getNativeEvent();
    //                if (BrowserEvents.DBLCLICK.equals(nativeEvent.getType())) {
    //                    ModelNode selectedValue = event.getValue();
    //
    //                }
    //            }
    //        });
    panel.add(table);

    DefaultPager pager = new DefaultPager();
    pager.setDisplay(table);
    panel.add(pager);

    // column: name
    nameColumn = new TextColumn<ModelNode>() {
        @Override
        public String getValue(ModelNode node) {
            return node.get(FILE_NAME).asString();
        }
    };
    nameColumn.setSortable(true);
    sortHandler.setComparator(nameColumn, new NameComparator());
    table.addColumn(nameColumn, "Log File Name");
    table.getColumnSortList().push(nameColumn);

    // column: last modified
    TextColumn<ModelNode> lastModifiedColumn = new TextColumn<ModelNode>() {
        @Override
        public String getValue(ModelNode node) {
            return node.get(LAST_MODIFIED_TIMESTAMP).asString();
        }
    };
    lastModifiedColumn.setSortable(true);
    sortHandler.setComparator(lastModifiedColumn, new Comparator<ModelNode>() {
        @Override
        public int compare(ModelNode node1, ModelNode node2) {
            return node1.get(LAST_MODIFIED_TIMESTAMP).asString()
                    .compareTo(node2.get(LAST_MODIFIED_TIMESTAMP).asString());
        }
    });
    table.addColumn(lastModifiedColumn, "Date - Time (UTC)");

    // column: size
    TextColumn<ModelNode> sizeColumn = new TextColumn<ModelNode>() {
        @Override
        public String getValue(ModelNode node) {
            double size = node.get(LogStore.FILE_SIZE).asLong() / 1048576.0;
            return SIZE_FORMAT.format(size);
        }
    };
    sizeColumn.setSortable(true);
    sizeColumn.setHorizontalAlignment(ALIGN_RIGHT);
    sortHandler.setComparator(sizeColumn, new Comparator<ModelNode>() {
        @Override
        public int compare(ModelNode node1, ModelNode node2) {
            return node1.get(FILE_SIZE).asInt() - node2.get(FILE_SIZE).asInt();
        }
    });
    table.addColumn(sizeColumn, "Size (MB)");

    ScrollPanel scroll = new ScrollPanel(panel);
    LayoutPanel layout = new LayoutPanel();
    layout.add(scroll);
    layout.setWidgetTopHeight(scroll, 0, PX, 100, Style.Unit.PCT);

    initWidget(layout);
}

From source file:org.jboss.as.console.client.shared.runtime.logging.viewer.LogFileTable.java

License:Open Source License

@SuppressWarnings("unchecked")
public LogFileTable(final Dispatcher circuit) {

    VerticalPanel panel = new VerticalPanel();
    panel.addStyleName("fill-layout-width");
    panel.getElement().getStyle().setPadding(30, Style.Unit.PX);

    panel.getElement().getStyle().setMarginBottom(0, PX);

    // header/*from   www  . j a  va  2s . c  o m*/
    panel.add(new ContentHeaderLabel("Log Viewer"));
    panel.add(new ContentDescription("Log files of selected server"));

    // toolbar
    ToolStrip tools = new ToolStrip();
    HTML label = new HTML(Console.CONSTANTS.commom_label_filter() + ":&nbsp;");
    label.getElement().setAttribute("style", "padding-top:8px;");
    final TextBox filter = new TextBox();
    filter.setMaxLength(30);
    filter.setVisibleLength(20);
    filter.getElement().setAttribute("style", "float:right; width:120px;");
    filter.addKeyUpHandler(new KeyUpHandler() {
        @Override
        public void onKeyUp(KeyUpEvent keyUpEvent) {
            String prefix = filter.getText();
            if (prefix != null && !prefix.equals("")) {
                // filter by prefix
                filterByPrefix(prefix);
            } else {
                clearFilter();
            }
        }
    });
    setId(filter, BASE_ID, "filter");
    tools.addToolWidget(label);
    tools.addToolWidget(filter);

    final ToolButton view = new ToolButton(Console.CONSTANTS.common_label_view(), new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) {
            ModelNode logFile = selectionModel.getSelectedObject();
            if (logFile != null) {
                circuit.dispatch(new OpenLogFile(logFile.get(FILE_NAME).asString()));
            }
        }
    });
    view.setEnabled(false);
    view.setOperationAddress("/{implicit.host}/{selected.server}/subsystem=logging", "read-log-file");
    setId(view, BASE_ID, "view");
    tools.addToolButtonRight(view);
    panel.add(tools);

    // table
    backup = new ArrayList<>();
    ProvidesKey<ModelNode> providesKey = new ProvidesKey<ModelNode>() {
        @Override
        public Object getKey(ModelNode item) {
            return item.get(FILE_NAME);
        }
    };
    selectionModel = new SingleSelectionModel<>(providesKey);
    selectionModel.addSelectionChangeHandler(new SelectionChangeEvent.Handler() {
        @Override
        public void onSelectionChange(SelectionChangeEvent event) {
            view.setEnabled(selectionModel.getSelectedObject() != null);
        }
    });
    table = new ModelNodeCellTable(10, providesKey);
    table.setSelectionModel(selectionModel);
    dataProvider = new ListDataProvider<>(providesKey);
    dataProvider.addDataDisplay(table);
    ColumnSortEvent.ListHandler<ModelNode> sortHandler = new ColumnSortEvent.ListHandler<ModelNode>(
            dataProvider.getList());
    table.addColumnSortHandler(sortHandler);
    panel.add(table);

    DefaultPager pager = new DefaultPager();
    pager.setDisplay(table);
    panel.add(pager);

    // column: name
    nameColumn = new TextColumn<ModelNode>() {
        @Override
        public String getValue(ModelNode node) {
            return node.get(FILE_NAME).asString();
        }
    };
    nameColumn.setSortable(true);
    sortHandler.setComparator(nameColumn, new NameComparator());
    table.addColumn(nameColumn, "Log File Name");

    // column: last modified
    TextColumn<ModelNode> lastModifiedColumn = new TextColumn<ModelNode>() {
        @Override
        public String getValue(ModelNode node) {
            return node.get(LAST_MODIFIED_TIMESTAMP).asString();
        }
    };
    lastModifiedColumn.setSortable(true);
    sortHandler.setComparator(lastModifiedColumn, new Comparator<ModelNode>() {
        @Override
        public int compare(ModelNode node1, ModelNode node2) {
            return node1.get(LAST_MODIFIED_TIMESTAMP).asString()
                    .compareTo(node2.get(LAST_MODIFIED_TIMESTAMP).asString());
        }
    });
    table.addColumn(lastModifiedColumn, "Date - Time (UTC)");

    // column: size
    TextColumn<ModelNode> sizeColumn = new TextColumn<ModelNode>() {
        @Override
        public String getValue(ModelNode node) {
            double size = node.get(LogStore.FILE_SIZE).asLong() / 1024.0;
            return SIZE_FORMAT.format(size);
        }
    };
    sizeColumn.setSortable(true);
    sizeColumn.setHorizontalAlignment(ALIGN_RIGHT);
    sortHandler.setComparator(sizeColumn, new Comparator<ModelNode>() {
        @Override
        public int compare(ModelNode node1, ModelNode node2) {
            return node1.get(FILE_SIZE).asInt() - node2.get(FILE_SIZE).asInt();
        }
    });
    table.addColumn(sizeColumn, "Size (kb)");

    ScrollPanel scroll = new ScrollPanel(panel);
    LayoutPanel layout = new LayoutPanel();
    layout.add(scroll);
    layout.setWidgetTopHeight(scroll, 0, PX, 100, Style.Unit.PCT);

    initWidget(layout);
}

From source file:org.jboss.as.console.client.shared.runtime.logviewer.LogFileTable.java

License:Open Source License

@SuppressWarnings("unchecked")
public LogFileTable(final Dispatcher circuit) {

    VerticalPanel panel = new VerticalPanel();
    panel.addStyleName("rhs-content-panel");
    panel.getElement().getStyle().setMarginBottom(0, PX);

    // header/*from www .  j  av a  2s.com*/
    panel.add(new ContentHeaderLabel("Log Viewer"));
    panel.add(new ContentDescription("Log files of selected server"));

    // toolbar
    ToolStrip tools = new ToolStrip();
    HTML label = new HTML(Console.CONSTANTS.commom_label_filter() + ":&nbsp;");
    label.getElement().setAttribute("style", "padding-top:8px;");
    final TextBox filter = new TextBox();
    filter.getElement().setId("TX_" + BASE_ID + "_filter");
    filter.setMaxLength(30);
    filter.setVisibleLength(20);
    filter.getElement().setAttribute("style", "float:right; width:120px;");
    filter.addKeyUpHandler(new KeyUpHandler() {
        @Override
        public void onKeyUp(KeyUpEvent keyUpEvent) {
            String prefix = filter.getText();
            if (prefix != null && !prefix.equals("")) {
                // filter by prefix
                filterByPrefix(prefix);
            } else {
                clearFilter();
            }
        }
    });
    tools.addToolWidget(label);
    tools.addToolWidget(filter);

    final ToolButton download = new ToolButton("Download", new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) {
            ModelNode logFile = selectionModel.getSelectedObject();
            if (logFile != null) {
                // TODO Implement download
            }
        }
    });
    download.setEnabled(false);
    download.getElement().setId("BT_" + BASE_ID + "_download");
    // TODO Enable when the server side download is in place
    // tools.addToolButtonRight(download);

    final ToolButton view = new ToolButton(Console.CONSTANTS.common_label_view(), new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) {
            ModelNode logFile = selectionModel.getSelectedObject();
            if (logFile != null) {
                circuit.dispatch(new OpenLogFile(logFile.get(FILE_NAME).asString()));
            }
        }
    });
    view.setEnabled(false);
    view.getElement().setId("BT_" + BASE_ID + "_view");
    tools.addToolButtonRight(view);
    panel.add(tools);

    // table
    backup = new ArrayList<>();
    ProvidesKey<ModelNode> providesKey = new ProvidesKey<ModelNode>() {
        @Override
        public Object getKey(ModelNode item) {
            return item.get(FILE_NAME);
        }
    };
    selectionModel = new SingleSelectionModel<>(providesKey);
    selectionModel.addSelectionChangeHandler(new SelectionChangeEvent.Handler() {
        @Override
        public void onSelectionChange(SelectionChangeEvent event) {
            download.setEnabled(selectionModel.getSelectedObject() != null);
            view.setEnabled(selectionModel.getSelectedObject() != null);
        }
    });
    table = new ModelNodeCellTable(10, providesKey);
    table.setSelectionModel(selectionModel);
    dataProvider = new ListDataProvider<>(providesKey);
    dataProvider.addDataDisplay(table);
    ColumnSortEvent.ListHandler<ModelNode> sortHandler = new ColumnSortEvent.ListHandler<ModelNode>(
            dataProvider.getList());
    table.addColumnSortHandler(sortHandler);
    panel.add(table);

    DefaultPager pager = new DefaultPager();
    pager.setDisplay(table);
    panel.add(pager);

    // column: name
    TextColumn<ModelNode> nameColumn = new TextColumn<ModelNode>() {
        @Override
        public String getValue(ModelNode node) {
            return node.get(FILE_NAME).asString();
        }
    };
    nameColumn.setSortable(true);
    sortHandler.setComparator(nameColumn, new NameComparator());
    table.addColumn(nameColumn, "Log File Name");

    // column: last modified
    TextColumn<ModelNode> lastModifiedColumn = new TextColumn<ModelNode>() {
        @Override
        public String getValue(ModelNode node) {
            return node.get(LAST_MODIFIED_DATE).asString();
        }
    };
    lastModifiedColumn.setSortable(true);
    sortHandler.setComparator(lastModifiedColumn, new Comparator<ModelNode>() {
        @Override
        public int compare(ModelNode node1, ModelNode node2) {
            return node1.get(LAST_MODIFIED_DATE).asString().compareTo(node2.get(LAST_MODIFIED_DATE).asString());
        }
    });
    table.addColumn(lastModifiedColumn, "Date - Time (UTC)");

    // column: size
    TextColumn<ModelNode> sizeColumn = new TextColumn<ModelNode>() {
        @Override
        public String getValue(ModelNode node) {
            double size = node.get(LogStore.FILE_SIZE).asLong() / 1024.0;
            return SIZE_FORMAT.format(size);
        }
    };
    sizeColumn.setSortable(true);
    sortHandler.setComparator(sizeColumn, new Comparator<ModelNode>() {
        @Override
        public int compare(ModelNode node1, ModelNode node2) {
            return node1.get(FILE_SIZE).asInt() - node2.get(FILE_SIZE).asInt();
        }
    });
    table.addColumn(sizeColumn, "Size (kb)");

    ScrollPanel scroll = new ScrollPanel(panel);
    LayoutPanel layout = new LayoutPanel();
    layout.add(scroll);
    layout.setWidgetTopHeight(scroll, 0, PX, 100, Style.Unit.PCT);

    initWidget(layout);
}

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 www. ja  v a 2 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);

    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

JMSBridgeList(JMSBridgePresenter presenter) {
    this.presenter = presenter;
    ProvidesKey<Property> providesKey = Property::getName;
    this.table = new DefaultCellTable<>(8, providesKey);
    this.dataProvider = new ListDataProvider<>(providesKey);
    this.dataProvider.addDataDisplay(table);
    this.selectionModel = new SingleSelectionModel<>(providesKey);
    this.table.setSelectionModel(selectionModel);
}

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/*w w w .ja va 2 s  .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));
                        }//  ww w.j a  v  a 2 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.factory.ConfigurableHttpServerMechanismFactoryFilterEditor.java

License:Open Source License

ConfigurableHttpServerMechanismFactoryFilterEditor(final Dispatcher circuit,
        ResourceDescription resourceDescription, SecurityContext securityContext) {
    this.circuit = circuit;
    this.securityContext = securityContext;
    this.nameProvider = modelNode -> modelNode.get("pattern-filter");
    selectionModel = new SingleSelectionModel<>(nameProvider);

    this.resourceDescription = new ResourceDescription(resourceDescription.clone());
    ModelNode reqPropsDescription = this.resourceDescription.get("operations").get("add")
            .get("request-properties");
    ModelNode filtersDescription = reqPropsDescription.get("filters").get("value-type");
    reqPropsDescription.set(filtersDescription);
}

From source file:org.jboss.as.console.client.shared.subsys.elytron.ui.factory.MechanismProviderFilteringSaslServerFilterEditor.java

License:Open Source License

MechanismProviderFilteringSaslServerFilterEditor(final Dispatcher circuit,
        ResourceDescription resourceDescription, SecurityContext securityContext) {
    this.circuit = circuit;
    this.securityContext = securityContext;
    this.nameProvider = modelNode -> modelNode.get("provider-name");
    selectionModel = new SingleSelectionModel<>(nameProvider);

    this.resourceDescription = new ResourceDescription(resourceDescription.clone());
    ModelNode reqPropsDescription = this.resourceDescription.get(OPERATIONS).get(ADD).get(REQUEST_PROPERTIES);
    ModelNode filtersDescription = reqPropsDescription.get("filters").get(VALUE_TYPE);
    reqPropsDescription.set(filtersDescription);
}