Search in sources :

Example 1 with ManagedBeanOperationParameter

use of com.haulmont.cuba.web.jmx.entity.ManagedBeanOperationParameter in project cuba by cuba-platform.

the class MbeanInspectWindow method initOperationsLayout.

protected void initOperationsLayout(ManagedBeanInfo mbean) {
    BoxLayout container = operations;
    for (ManagedBeanOperation op : mbean.getOperations()) {
        BoxLayout vl = uiComponents.create(VBoxLayout.class);
        vl.setMargin(false, false, true, false);
        vl.setSpacing(true);
        vl.setStyleName("c-mbeans-operation-container");
        Label<String> nameLbl = uiComponents.create(Label.TYPE_DEFAULT);
        nameLbl.setValue(convertTypeToReadableName(op.getReturnType()) + " " + op.getName() + "()");
        nameLbl.setStyleName("h2");
        vl.add(nameLbl);
        if (StringUtils.isNotEmpty(op.getDescription())) {
            Label<String> descrLbl = uiComponents.create(Label.TYPE_DEFAULT);
            descrLbl.setValue(op.getDescription());
            vl.add(descrLbl);
        }
        List<AttributeEditor> attrProviders = new ArrayList<>();
        if (!op.getParameters().isEmpty()) {
            GridLayout grid = uiComponents.create(GridLayout.class);
            grid.setSpacing(true);
            grid.setColumns(3);
            grid.setRows(op.getParameters().size());
            int row = 0;
            for (ManagedBeanOperationParameter param : op.getParameters()) {
                Label<String> pnameLbl = uiComponents.create(Label.TYPE_DEFAULT);
                pnameLbl.setValue(param.getName());
                Label<String> ptypeLbl = uiComponents.create(Label.TYPE_DEFAULT);
                ptypeLbl.setValue(convertTypeToReadableName(param.getType()));
                AttributeEditor prov = new AttributeEditor(frame, param.getType());
                attrProviders.add(prov);
                Component editField = prov.getComponent();
                Component editComposition = editField;
                if (StringUtils.isNotBlank(param.getDescription())) {
                    Label<String> pdescrLbl = uiComponents.create(Label.TYPE_DEFAULT);
                    pdescrLbl.setValue(param.getDescription());
                    BoxLayout editorLayout = uiComponents.create(VBoxLayout.class);
                    editorLayout.add(editField);
                    editorLayout.add(pdescrLbl);
                    editComposition = editorLayout;
                }
                grid.add(pnameLbl, 0, row);
                grid.add(ptypeLbl, 1, row);
                grid.add(editComposition, 2, row);
                row++;
            }
            vl.add(grid);
        }
        Button invokeBtn = uiComponents.create(Button.class);
        invokeBtn.setAction(new BaseAction("invoke").withCaption(getMessage("mbean.operation.invoke")).withHandler(event -> invokeOperation(op, attrProviders)));
        vl.add(invokeBtn);
        container.add(vl);
    }
    if (mbean.getOperations().isEmpty()) {
        Label<String> lbl = uiComponents.create(Label.TYPE_DEFAULT);
        lbl.setValue(getMessage("mbean.operations.none"));
        container.add(lbl);
    }
}
Also used : ManagedBeanAttribute(com.haulmont.cuba.web.jmx.entity.ManagedBeanAttribute) java.util(java.util) CubaTable(com.haulmont.cuba.web.widgets.CubaTable) LoggerFactory(org.slf4j.LoggerFactory) ParamsMap(com.haulmont.bali.util.ParamsMap) AttributeEditor(com.haulmont.cuba.web.app.ui.jmxcontrol.util.AttributeEditor) BackgroundWorkWindow(com.haulmont.cuba.gui.backgroundwork.BackgroundWorkWindow) StringUtils(org.apache.commons.lang3.StringUtils) Inject(javax.inject.Inject) JmxControlAPI(com.haulmont.cuba.web.jmx.JmxControlAPI) BaseAction(com.haulmont.cuba.gui.components.actions.BaseAction) Named(javax.inject.Named) com.haulmont.cuba.gui.components(com.haulmont.cuba.gui.components) OpenType(com.haulmont.cuba.gui.WindowManager.OpenType) TaskLifeCycle(com.haulmont.cuba.gui.executors.TaskLifeCycle) Logger(org.slf4j.Logger) ManagedBeanOperationParameter(com.haulmont.cuba.web.jmx.entity.ManagedBeanOperationParameter) ManagedBeanInfo(com.haulmont.cuba.web.jmx.entity.ManagedBeanInfo) BackgroundTask(com.haulmont.cuba.gui.executors.BackgroundTask) TimeUnit(java.util.concurrent.TimeUnit) AttributeHelper.convertTypeToReadableName(com.haulmont.cuba.web.jmx.entity.AttributeHelper.convertTypeToReadableName) WebConfig(com.haulmont.cuba.web.WebConfig) ManagedBeanOperation(com.haulmont.cuba.web.jmx.entity.ManagedBeanOperation) UiComponents(com.haulmont.cuba.gui.UiComponents) CollectionDatasource(com.haulmont.cuba.gui.data.CollectionDatasource) ManagedBeanOperationParameter(com.haulmont.cuba.web.jmx.entity.ManagedBeanOperationParameter) BaseAction(com.haulmont.cuba.gui.components.actions.BaseAction) ManagedBeanOperation(com.haulmont.cuba.web.jmx.entity.ManagedBeanOperation) AttributeEditor(com.haulmont.cuba.web.app.ui.jmxcontrol.util.AttributeEditor)

Aggregations

ParamsMap (com.haulmont.bali.util.ParamsMap)1 UiComponents (com.haulmont.cuba.gui.UiComponents)1 OpenType (com.haulmont.cuba.gui.WindowManager.OpenType)1 BackgroundWorkWindow (com.haulmont.cuba.gui.backgroundwork.BackgroundWorkWindow)1 com.haulmont.cuba.gui.components (com.haulmont.cuba.gui.components)1 BaseAction (com.haulmont.cuba.gui.components.actions.BaseAction)1 CollectionDatasource (com.haulmont.cuba.gui.data.CollectionDatasource)1 BackgroundTask (com.haulmont.cuba.gui.executors.BackgroundTask)1 TaskLifeCycle (com.haulmont.cuba.gui.executors.TaskLifeCycle)1 WebConfig (com.haulmont.cuba.web.WebConfig)1 AttributeEditor (com.haulmont.cuba.web.app.ui.jmxcontrol.util.AttributeEditor)1 JmxControlAPI (com.haulmont.cuba.web.jmx.JmxControlAPI)1 AttributeHelper.convertTypeToReadableName (com.haulmont.cuba.web.jmx.entity.AttributeHelper.convertTypeToReadableName)1 ManagedBeanAttribute (com.haulmont.cuba.web.jmx.entity.ManagedBeanAttribute)1 ManagedBeanInfo (com.haulmont.cuba.web.jmx.entity.ManagedBeanInfo)1 ManagedBeanOperation (com.haulmont.cuba.web.jmx.entity.ManagedBeanOperation)1 ManagedBeanOperationParameter (com.haulmont.cuba.web.jmx.entity.ManagedBeanOperationParameter)1 CubaTable (com.haulmont.cuba.web.widgets.CubaTable)1 java.util (java.util)1 TimeUnit (java.util.concurrent.TimeUnit)1