Search in sources :

Example 16 with InlineMenuItemAction

use of com.evolveum.midpoint.web.component.menu.cog.InlineMenuItemAction in project midpoint by Evolveum.

the class PageDebugList method initInlineMenu.

private List<InlineMenuItem> initInlineMenu() {
    List<InlineMenuItem> headerMenuItems = new ArrayList<>();
    headerMenuItems.add(new InlineMenuItem(createStringResource("pageDebugList.menu.exportSelected"), true) {

        private static final long serialVersionUID = 1L;

        @Override
        public InlineMenuItemAction initAction() {
            return new HeaderMenuAction(PageDebugList.this) {

                private static final long serialVersionUID = 1L;

                @Override
                public void onSubmit(AjaxRequestTarget target) {
                    exportSelected(target, null);
                }
            };
        }
    });
    headerMenuItems.add(new InlineMenuItem(createStringResource("pageDebugList.menu.exportAllSelectedType"), true) {

        private static final long serialVersionUID = 1L;

        @Override
        public InlineMenuItemAction initAction() {
            return new HeaderMenuAction(PageDebugList.this) {

                private static final long serialVersionUID = 1L;

                @Override
                public void onSubmit(AjaxRequestTarget target) {
                    exportAllType(target);
                }
            };
        }
    });
    headerMenuItems.add(new InlineMenuItem(createStringResource("pageDebugList.menu.exportShadowsOnResource")) {

        private static final long serialVersionUID = 1L;

        @Override
        public InlineMenuItemAction initAction() {
            return new HeaderMenuAction(PageDebugList.this) {

                private static final long serialVersionUID = 1L;

                @Override
                public void onClick(AjaxRequestTarget target) {
                    exportAllShadowsOnResource(target);
                }
            };
        }

        @Override
        public IModel<Boolean> getVisible() {
            return Model.of(ShadowType.class.equals(getType()));
        }
    });
    headerMenuItems.add(new InlineMenuItem(createStringResource("pageDebugList.menu.exportAll"), true) {

        private static final long serialVersionUID = 1L;

        @Override
        public InlineMenuItemAction initAction() {
            return new HeaderMenuAction(PageDebugList.this) {

                private static final long serialVersionUID = 1L;

                @Override
                public void onSubmit(AjaxRequestTarget target) {
                    exportAll(target);
                }
            };
        }
    });
    headerMenuItems.add(new InlineMenuItem(createStringResource("pageDebugList.menu.deleteSelected"), true) {

        private static final long serialVersionUID = 1L;

        @Override
        public InlineMenuItemAction initAction() {
            return new HeaderMenuAction(PageDebugList.this) {

                private static final long serialVersionUID = 1L;

                @Override
                public void onSubmit(AjaxRequestTarget target) {
                    deleteSelected(target, null);
                }
            };
        }
    });
    headerMenuItems.add(new InlineMenuItem(createStringResource("pageDebugList.menu.deleteAllType"), true) {

        private static final long serialVersionUID = 1L;

        @Override
        public InlineMenuItemAction initAction() {
            return new HeaderMenuAction(PageDebugList.this) {

                private static final long serialVersionUID = 1L;

                @Override
                public void onSubmit(AjaxRequestTarget target) {
                    deleteAllType(target);
                }
            };
        }
    });
    headerMenuItems.add(new InlineMenuItem(createStringResource("pageDebugList.menu.deleteShadowsOnResource")) {

        private static final long serialVersionUID = 1L;

        @Override
        public InlineMenuItemAction initAction() {
            return new HeaderMenuAction(PageDebugList.this) {

                private static final long serialVersionUID = 1L;

                @Override
                public void onClick(AjaxRequestTarget target) {
                    deleteAllShadowsOnResource(target);
                }
            };
        }

        @Override
        public IModel<Boolean> getVisible() {
            return Model.of(ShadowType.class.equals(getType()));
        }
    });
    headerMenuItems.add(new InlineMenuItem(createStringResource("pageDebugList.menu.deleteAllIdentities"), true) {

        private static final long serialVersionUID = 1L;

        @Override
        public InlineMenuItemAction initAction() {
            return new HeaderMenuAction(PageDebugList.this) {

                private static final long serialVersionUID = 1L;

                @Override
                public void onSubmit(AjaxRequestTarget target) {
                    deleteAllIdentities(target);
                }
            };
        }
    });
    return headerMenuItems;
}
Also used : HeaderMenuAction(com.evolveum.midpoint.web.page.admin.configuration.component.HeaderMenuAction) AjaxRequestTarget(org.apache.wicket.ajax.AjaxRequestTarget) IModel(org.apache.wicket.model.IModel) ArrayList(java.util.ArrayList) InlineMenuItemAction(com.evolveum.midpoint.web.component.menu.cog.InlineMenuItemAction) InlineMenuItem(com.evolveum.midpoint.web.component.menu.cog.InlineMenuItem)

Example 17 with InlineMenuItemAction

use of com.evolveum.midpoint.web.component.menu.cog.InlineMenuItemAction in project midpoint by Evolveum.

the class WebComponentUtil method createMenuItemsFromActions.

@NotNull
public static List<InlineMenuItem> createMenuItemsFromActions(@NotNull List<GuiActionType> actions, String operation, PageBase pageBase, @NotNull Supplier<Collection<? extends ObjectType>> selectedObjectsSupplier) {
    List<InlineMenuItem> menuItems = new ArrayList<>();
    actions.forEach(action -> {
        if (action.getTaskTemplateRef() == null) {
            return;
        }
        String templateOid = action.getTaskTemplateRef().getOid();
        if (StringUtils.isEmpty(templateOid)) {
            return;
        }
        String label = action.getDisplay() != null && PolyStringUtils.isNotEmpty(action.getDisplay().getLabel()) ? action.getDisplay().getLabel().getOrig() : action.getName();
        menuItems.add(new InlineMenuItem(Model.of(label)) {

            private static final long serialVersionUID = 1L;

            @Override
            public InlineMenuItemAction initAction() {
                return new ColumnMenuAction<SelectableBean<ObjectType>>() {

                    private static final long serialVersionUID = 1L;

                    @Override
                    public void onClick(AjaxRequestTarget target) {
                        OperationResult result = new OperationResult(operation);
                        try {
                            Collection<String> oids;
                            if (getRowModel() != null) {
                                oids = Collections.singletonList(getRowModel().getObject().getValue().getOid());
                            } else {
                                oids = CollectionUtils.emptyIfNull(selectedObjectsSupplier.get()).stream().filter(o -> o.getOid() != null).map(o -> o.getOid()).collect(Collectors.toSet());
                            }
                            if (!oids.isEmpty()) {
                                @NotNull Item<PrismValue, ItemDefinition> extensionQuery = prepareExtensionValues(oids);
                                MidPointPrincipal principal = pageBase.getPrincipal();
                                if (principal == null) {
                                    throw new SecurityViolationException("No current user");
                                }
                                TaskType newTask = pageBase.getModelService().getObject(TaskType.class, templateOid, createCollection(createExecutionPhase()), pageBase.createSimpleTask(operation), result).asObjectable();
                                newTask.setName(PolyStringType.fromOrig(newTask.getName().getOrig() + " " + (int) (Math.random() * 10000)));
                                newTask.setOid(null);
                                newTask.setTaskIdentifier(null);
                                newTask.setOwnerRef(createObjectRef(principal.getFocus()));
                                newTask.setExecutionState(RUNNABLE);
                                newTask.setSchedulingState(READY);
                                newTask.asPrismObject().getOrCreateExtension().add(extensionQuery);
                                ObjectSetBasedWorkDefinitionType workDef = ObjectSetUtil.getObjectSetDefinitionFromTask(newTask);
                                QueryType query = (QueryType) extensionQuery.getRealValue();
                                ObjectSetType objectSet = workDef.getObjects();
                                if (objectSet == null) {
                                    objectSet = new ObjectSetType();
                                    objectSet.setType(ObjectType.COMPLEX_TYPE);
                                }
                                objectSet.setQuery(query);
                                workDef.setObjects(objectSet);
                                ObjectDelta<TaskType> delta = DeltaFactory.Object.createAddDelta(newTask.asPrismObject());
                                Collection<ObjectDeltaOperation<? extends ObjectType>> executedChanges = saveTask(delta, result, pageBase);
                                String newTaskOid = ObjectDeltaOperation.findAddDeltaOid(executedChanges, newTask.asPrismObject());
                                newTask.setOid(newTaskOid);
                                newTask.setTaskIdentifier(newTaskOid);
                                result.setInProgress();
                                result.setBackgroundTaskOid(newTask.getOid());
                            } else {
                                result.recordWarning(pageBase.createStringResource("WebComponentUtil.message.createMenuItemsFromActions.warning").getString());
                            }
                        } catch (Exception ex) {
                            result.recordFatalError(result.getOperation(), ex);
                            target.add(pageBase.getFeedbackPanel());
                        } finally {
                            pageBase.showResult(result);
                            target.add(pageBase.getFeedbackPanel());
                        }
                    }
                };
            }

            /**
             * Extension values are task-dependent. Therefore, in the future we will probably make
             * this behaviour configurable. For the time being we assume that the task template will be
             * of "iterative task handler" type and so it will expect mext:objectQuery extension property.
             *
             * FIXME
             */
            @NotNull
            private Item<PrismValue, ItemDefinition> prepareExtensionValues(Collection<String> oids) throws SchemaException {
                PrismContext prismContext = pageBase.getPrismContext();
                ObjectQuery objectQuery = prismContext.queryFor(ObjectType.class).id(oids.toArray(new String[0])).build();
                QueryType queryBean = pageBase.getQueryConverter().createQueryType(objectQuery);
                PrismContainerDefinition<?> extDef = PrismContext.get().getSchemaRegistry().findObjectDefinitionByCompileTimeClass(TaskType.class).findContainerDefinition(TaskType.F_EXTENSION);
                ItemDefinition<Item<PrismValue, ItemDefinition>> def = extDef != null ? extDef.findItemDefinition(SchemaConstants.MODEL_EXTENSION_OBJECT_QUERY) : null;
                if (def == null) {
                    throw new SchemaException("No definition of " + SchemaConstants.MODEL_EXTENSION_OBJECT_QUERY + " in the extension");
                }
                Item<PrismValue, ItemDefinition> extensionItem = def.instantiate();
                extensionItem.add(prismContext.itemFactory().createValue(queryBean));
                return extensionItem;
            }
        });
    });
    return menuItems;
}
Also used : PrismPropertyPanelContext(com.evolveum.midpoint.gui.impl.factory.panel.PrismPropertyPanelContext) PageUsers(com.evolveum.midpoint.web.page.admin.users.PageUsers) RenderPageRequestHandler(org.apache.wicket.core.request.handler.RenderPageRequestHandler) com.evolveum.midpoint.util.exception(com.evolveum.midpoint.util.exception) Scene(com.evolveum.midpoint.model.api.visualizer.Scene) PageResourceWizard(com.evolveum.midpoint.web.page.admin.resources.PageResourceWizard) StringValue(org.apache.wicket.util.string.StringValue) PatternDateConverter(org.apache.wicket.datetime.PatternDateConverter) com.evolveum.midpoint.prism(com.evolveum.midpoint.prism) Roles(org.apache.wicket.authroles.authorization.strategies.role.Roles) ObjectDelta(com.evolveum.midpoint.prism.delta.ObjectDelta) ValueStatus(com.evolveum.midpoint.web.component.prism.ValueStatus) CompositedIcon(com.evolveum.midpoint.gui.impl.component.icon.CompositedIcon) OnePageParameterEncoder(com.evolveum.midpoint.web.util.OnePageParameterEncoder) PageBase(com.evolveum.midpoint.gui.api.page.PageBase) PolyStringTranslationType(com.evolveum.prism.xml.ns._public.types_3.PolyStringTranslationType) PolyStringType(com.evolveum.prism.xml.ns._public.types_3.PolyStringType) PageAccount(com.evolveum.midpoint.web.page.admin.resources.content.PageAccount) PropertyDelta(com.evolveum.midpoint.prism.delta.PropertyDelta) CompiledObjectCollectionView(com.evolveum.midpoint.model.api.authentication.CompiledObjectCollectionView) InfoTooltipBehavior(com.evolveum.midpoint.web.util.InfoTooltipBehavior) DeltaFactory(com.evolveum.midpoint.prism.delta.DeltaFactory) CaseTypeUtil(com.evolveum.midpoint.schema.util.cases.CaseTypeUtil) SelectorOptions.createCollection(com.evolveum.midpoint.schema.SelectorOptions.createCollection) com.evolveum.midpoint.util(com.evolveum.midpoint.util) PageReport(com.evolveum.midpoint.web.page.admin.reports.PageReport) StringResourceModel(org.apache.wicket.model.StringResourceModel) Constructor(java.lang.reflect.Constructor) Supplier(java.util.function.Supplier) CollectionUtils(org.apache.commons.collections4.CollectionUtils) MidPointApplication(com.evolveum.midpoint.web.security.MidPointApplication) DateValidator(com.evolveum.midpoint.web.util.DateValidator) StreamSupport(java.util.stream.StreamSupport) PageService(com.evolveum.midpoint.web.page.admin.services.PageService) Collator(java.text.Collator) QueryType(com.evolveum.prism.xml.ns._public.query_3.QueryType) SelectableBeanImpl(com.evolveum.midpoint.web.component.util.SelectableBeanImpl) DataTable(org.apache.wicket.extensions.markup.html.repeater.data.table.DataTable) AjaxSubmitLink(org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink) MidPointPrincipal(com.evolveum.midpoint.security.api.MidPointPrincipal) WebMarkupContainer(org.apache.wicket.markup.html.WebMarkupContainer) DurationFormatUtils(org.apache.commons.lang3.time.DurationFormatUtils) PageArchetype(com.evolveum.midpoint.web.page.admin.archetype.PageArchetype) PageUser(com.evolveum.midpoint.web.page.admin.users.PageUser) ObjectTypes(com.evolveum.midpoint.schema.constants.ObjectTypes) EvaluatedTriggerGroupDto(com.evolveum.midpoint.web.page.admin.workflow.dto.EvaluatedTriggerGroupDto) PageServiceSelfProfile(com.evolveum.midpoint.web.page.self.PageServiceSelfProfile) ConstructorUtils(org.apache.commons.lang3.reflect.ConstructorUtils) com.evolveum.midpoint.schema.util(com.evolveum.midpoint.schema.util) ObjectDeltaType(com.evolveum.prism.xml.ns._public.types_3.ObjectDeltaType) PageObjectTemplate(com.evolveum.midpoint.web.page.admin.objectTemplate.PageObjectTemplate) AuthorizationConstants(com.evolveum.midpoint.security.api.AuthorizationConstants) TaskCategory(com.evolveum.midpoint.task.api.TaskCategory) IRequestHandler(org.apache.wicket.request.IRequestHandler) AuthUtil(com.evolveum.midpoint.authentication.api.util.AuthUtil) CaseWorkItemUtil(com.evolveum.midpoint.schema.util.cases.CaseWorkItemUtil) RequestCycle(org.apache.wicket.request.cycle.RequestCycle) PageMessageTemplate(com.evolveum.midpoint.gui.impl.page.admin.messagetemplate.PageMessageTemplate) AbstractAssignmentTypePanel(com.evolveum.midpoint.gui.impl.page.admin.assignmentholder.component.assignmentType.AbstractAssignmentTypePanel) GuiChannel(com.evolveum.midpoint.gui.impl.GuiChannel) IChoiceRenderer(org.apache.wicket.markup.html.form.IChoiceRenderer) CompiledGuiProfile(com.evolveum.midpoint.model.api.authentication.CompiledGuiProfile) ResourceUtils(com.evolveum.midpoint.model.api.util.ResourceUtils) ActivityStateUtil(com.evolveum.midpoint.schema.util.task.ActivityStateUtil) WrapperContext(com.evolveum.midpoint.gui.api.factory.wrapper.WrapperContext) PageValuePolicy(com.evolveum.midpoint.web.page.admin.valuePolicy.PageValuePolicy) Collectors(java.util.stream.Collectors) DropDownChoice(org.apache.wicket.markup.html.form.DropDownChoice) Nullable(org.jetbrains.annotations.Nullable) SortParam(org.apache.wicket.extensions.markup.html.repeater.util.SortParam) PageResources(com.evolveum.midpoint.web.page.admin.resources.PageResources) READY(com.evolveum.midpoint.xml.ns._public.common.common_3.TaskSchedulingStateType.READY) PrismReferenceValueWrapperImpl(com.evolveum.midpoint.gui.impl.prism.wrapper.PrismReferenceValueWrapperImpl) com.evolveum.midpoint.schema(com.evolveum.midpoint.schema) com.evolveum.midpoint.xml.ns._public.common.common_3(com.evolveum.midpoint.xml.ns._public.common.common_3) PageOrgSelfProfile(com.evolveum.midpoint.web.page.self.PageOrgSelfProfile) CompositedIconBuilder(com.evolveum.midpoint.gui.impl.component.icon.CompositedIconBuilder) BaseSortableDataProvider(com.evolveum.midpoint.web.component.data.BaseSortableDataProvider) FormComponent(org.apache.wicket.markup.html.form.FormComponent) GuiStyleConstants(com.evolveum.midpoint.gui.api.GuiStyleConstants) VerhoeffCheckDigit(org.apache.commons.validator.routines.checkdigit.VerhoeffCheckDigit) ObjectDetailsModels(com.evolveum.midpoint.gui.impl.page.admin.ObjectDetailsModels) ApprovalUtils(com.evolveum.midpoint.schema.util.cases.ApprovalUtils) PageResource(com.evolveum.midpoint.web.page.admin.resources.PageResource) PageShadow(com.evolveum.midpoint.gui.impl.page.admin.resource.PageShadow) PageRoleSelfProfile(com.evolveum.midpoint.web.page.self.PageRoleSelfProfile) SceneUtil(com.evolveum.midpoint.web.component.prism.show.SceneUtil) PageTasks(com.evolveum.midpoint.web.page.admin.server.PageTasks) ItemPath(com.evolveum.midpoint.prism.path.ItemPath) BasePanel(com.evolveum.midpoint.gui.api.component.BasePanel) org.apache.commons.lang3(org.apache.commons.lang3) ApprovalContextUtil(com.evolveum.midpoint.schema.util.cases.ApprovalContextUtil) com.evolveum.midpoint.gui.api.prism.wrapper(com.evolveum.midpoint.gui.api.prism.wrapper) VisibleEnableBehaviour(com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour) AjaxFormComponentUpdatingBehavior(org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior) ObjectTypeUtil.createObjectRef(com.evolveum.midpoint.schema.util.ObjectTypeUtil.createObjectRef) com.evolveum.midpoint.prism.query(com.evolveum.midpoint.prism.query) ObjectSetUtil(com.evolveum.midpoint.schema.util.task.work.ObjectSetUtil) ChangeType(com.evolveum.midpoint.prism.delta.ChangeType) ItemVisibility(com.evolveum.midpoint.web.component.prism.ItemVisibility) PageParameters(org.apache.wicket.request.mapper.parameter.PageParameters) WorkItemTypeUtil(com.evolveum.midpoint.schema.util.cases.WorkItemTypeUtil) PageMessageTemplates(com.evolveum.midpoint.gui.impl.page.admin.messagetemplate.PageMessageTemplates) GetOperationOptions.createExecutionPhase(com.evolveum.midpoint.schema.GetOperationOptions.createExecutionPhase) AjaxRequestTarget(org.apache.wicket.ajax.AjaxRequestTarget) IModel(org.apache.wicket.model.IModel) PrintWriter(java.io.PrintWriter) Label(org.apache.wicket.markup.html.basic.Label) Model(org.apache.wicket.model.Model) Task(com.evolveum.midpoint.task.api.Task) InvocationTargetException(java.lang.reflect.InvocationTargetException) PageServices(com.evolveum.midpoint.web.page.admin.services.PageServices) SessionStorage(com.evolveum.midpoint.web.session.SessionStorage) PageRole(com.evolveum.midpoint.web.page.admin.roles.PageRole) ChangesByState(com.evolveum.midpoint.wf.api.ChangesByState) QName(javax.xml.namespace.QName) PageOrg(com.evolveum.midpoint.gui.impl.page.admin.org.PageOrg) TabbedPanel(com.evolveum.midpoint.web.component.TabbedPanel) ProtectedStringType(com.evolveum.prism.xml.ns._public.types_3.ProtectedStringType) PolyStringUtils(com.evolveum.midpoint.prism.util.PolyStringUtils) Form(org.apache.wicket.markup.html.form.Form) java.util(java.util) InputPanel(com.evolveum.midpoint.web.component.prism.InputPanel) TaskTypeUtil(com.evolveum.midpoint.schema.util.task.TaskTypeUtil) SimpleDateFormat(java.text.SimpleDateFormat) InlineMenuItemAction(com.evolveum.midpoint.web.component.menu.cog.InlineMenuItemAction) LayeredIconCssStyle(com.evolveum.midpoint.gui.impl.component.icon.LayeredIconCssStyle) Trace(com.evolveum.midpoint.util.logging.Trace) SelectableBean(com.evolveum.midpoint.web.component.util.SelectableBean) LocalizationService(com.evolveum.midpoint.common.LocalizationService) AuditEventRecordType(com.evolveum.midpoint.xml.ns._public.common.audit_3.AuditEventRecordType) com.evolveum.midpoint.model.api(com.evolveum.midpoint.model.api) PageCase(com.evolveum.midpoint.web.page.admin.cases.PageCase) IDataProvider(org.apache.wicket.markup.repeater.data.IDataProvider) IVisitor(org.apache.wicket.util.visit.IVisitor) VariablesMap(com.evolveum.midpoint.schema.expression.VariablesMap) InlineMenuItem(com.evolveum.midpoint.web.component.menu.cog.InlineMenuItem) SceneDto(com.evolveum.midpoint.web.component.prism.show.SceneDto) TableId(com.evolveum.midpoint.web.session.UserProfileStorage.TableId) PageRoles(com.evolveum.midpoint.web.page.admin.roles.PageRoles) PageBase.createStringResourceStatic(com.evolveum.midpoint.gui.api.page.PageBase.createStringResourceStatic) RUNNABLE(com.evolveum.midpoint.xml.ns._public.common.common_3.TaskExecutionStateType.RUNNABLE) StringWriter(java.io.StringWriter) XMLGregorianCalendar(javax.xml.datatype.XMLGregorianCalendar) PrismPropertyValueWrapper(com.evolveum.midpoint.gui.impl.prism.wrapper.PrismPropertyValueWrapper) ItemName(com.evolveum.midpoint.prism.path.ItemName) ItemPathCollectionsUtil(com.evolveum.midpoint.prism.path.ItemPathCollectionsUtil) AuthorizationAction(com.evolveum.midpoint.authentication.api.authorization.AuthorizationAction) S_FilterEntryOrEmpty(com.evolveum.midpoint.prism.query.builder.S_FilterEntryOrEmpty) TraceManager(com.evolveum.midpoint.util.logging.TraceManager) ObjectTypeGuiDescriptor(com.evolveum.midpoint.web.util.ObjectTypeGuiDescriptor) IVisit(org.apache.wicket.util.visit.IVisit) Behavior(org.apache.wicket.behavior.Behavior) PageTask(com.evolveum.midpoint.web.page.admin.server.PageTask) PageOrgUnit(com.evolveum.midpoint.web.page.admin.orgs.PageOrgUnit) PageDescriptor(com.evolveum.midpoint.authentication.api.authorization.PageDescriptor) TaskInformation(com.evolveum.midpoint.schema.util.task.TaskInformation) OperationResultStatus(com.evolveum.midpoint.schema.result.OperationResultStatus) PageObjectCollection(com.evolveum.midpoint.web.page.admin.objectCollection.PageObjectCollection) NonEmptyModel(com.evolveum.midpoint.gui.api.model.NonEmptyModel) PageUserSelfProfile(com.evolveum.midpoint.web.page.self.PageUserSelfProfile) Breadcrumb(com.evolveum.midpoint.web.component.breadcrumbs.Breadcrumb) URI(java.net.URI) ReadOnlyModel(com.evolveum.midpoint.gui.api.model.ReadOnlyModel) XmlTypeConverter(com.evolveum.midpoint.prism.xml.XmlTypeConverter) DateTimeFormat(org.joda.time.format.DateTimeFormat) Experimental(com.evolveum.midpoint.util.annotation.Experimental) Predicate(java.util.function.Predicate) IFeedback(org.apache.wicket.feedback.IFeedback) DateLabelComponent(com.evolveum.midpoint.web.component.DateLabelComponent) Contract(org.jetbrains.annotations.Contract) ColumnMenuAction(com.evolveum.midpoint.web.component.data.column.ColumnMenuAction) ExpressionUtil(com.evolveum.midpoint.repo.common.expression.ExpressionUtil) DisplayableValueChoiceRenderer(com.evolveum.midpoint.web.component.input.DisplayableValueChoiceRenderer) NotNull(org.jetbrains.annotations.NotNull) DropDownChoicePanel(com.evolveum.midpoint.web.component.input.DropDownChoicePanel) LoadableModel(com.evolveum.midpoint.gui.api.model.LoadableModel) BreadcrumbPageInstance(com.evolveum.midpoint.web.component.breadcrumbs.BreadcrumbPageInstance) ModelExecuteOptions.toModelExecutionOptionsBean(com.evolveum.midpoint.model.api.ModelExecuteOptions.toModelExecutionOptionsBean) AuthenticatedWebApplication(org.apache.wicket.authroles.authentication.AuthenticatedWebApplication) GuiProfiledPrincipal(com.evolveum.midpoint.model.api.authentication.GuiProfiledPrincipal) DynamicFormPanel(com.evolveum.midpoint.web.component.prism.DynamicFormPanel) SchemaConstants(com.evolveum.midpoint.schema.constants.SchemaConstants) OperationResult(com.evolveum.midpoint.schema.result.OperationResult) IconCssStyle(com.evolveum.midpoint.gui.impl.component.icon.IconCssStyle) MainObjectListPanel(com.evolveum.midpoint.gui.api.component.MainObjectListPanel) org.apache.wicket(org.apache.wicket) EncryptionException(com.evolveum.midpoint.prism.crypto.EncryptionException) Table(com.evolveum.midpoint.web.component.data.Table) BreadcrumbPageClass(com.evolveum.midpoint.web.component.breadcrumbs.BreadcrumbPageClass) SubscriptionType(com.evolveum.midpoint.gui.api.SubscriptionType) ITab(org.apache.wicket.extensions.markup.html.tabs.ITab) OperationResultStatusPresentationProperties(com.evolveum.midpoint.web.page.admin.server.dto.OperationResultStatusPresentationProperties) Selectable(com.evolveum.midpoint.web.component.util.Selectable) PolyString(com.evolveum.midpoint.prism.polystring.PolyString) ReadOnlyValueModel(com.evolveum.midpoint.gui.api.model.ReadOnlyValueModel) LoggingUtils(com.evolveum.midpoint.util.logging.LoggingUtils) Panel(org.apache.wicket.markup.html.panel.Panel) com.evolveum.midpoint.schema.processor(com.evolveum.midpoint.schema.processor) Protector(com.evolveum.midpoint.prism.crypto.Protector) NumberUtils(org.apache.commons.lang3.math.NumberUtils) SelectableBeanContainerDataProvider(com.evolveum.midpoint.web.component.data.SelectableBeanContainerDataProvider) OperationResult(com.evolveum.midpoint.schema.result.OperationResult) PolyString(com.evolveum.midpoint.prism.polystring.PolyString) NotNull(org.jetbrains.annotations.NotNull) InlineMenuItem(com.evolveum.midpoint.web.component.menu.cog.InlineMenuItem) SelectableBean(com.evolveum.midpoint.web.component.util.SelectableBean) InlineMenuItem(com.evolveum.midpoint.web.component.menu.cog.InlineMenuItem) ObjectDelta(com.evolveum.midpoint.prism.delta.ObjectDelta) MidPointPrincipal(com.evolveum.midpoint.security.api.MidPointPrincipal) InvocationTargetException(java.lang.reflect.InvocationTargetException) EncryptionException(com.evolveum.midpoint.prism.crypto.EncryptionException) AjaxRequestTarget(org.apache.wicket.ajax.AjaxRequestTarget) InlineMenuItemAction(com.evolveum.midpoint.web.component.menu.cog.InlineMenuItemAction) SelectorOptions.createCollection(com.evolveum.midpoint.schema.SelectorOptions.createCollection) PageObjectCollection(com.evolveum.midpoint.web.page.admin.objectCollection.PageObjectCollection) QueryType(com.evolveum.prism.xml.ns._public.query_3.QueryType) NotNull(org.jetbrains.annotations.NotNull)

Example 18 with InlineMenuItemAction

use of com.evolveum.midpoint.web.component.menu.cog.InlineMenuItemAction in project midpoint by Evolveum.

the class FocusProjectionsTabPanel method createShadowMenu.

private List<InlineMenuItem> createShadowMenu() {
    List<InlineMenuItem> items = new ArrayList<>();
    PrismObjectDefinition<F> def = getObjectWrapper().getObject().getDefinition();
    PrismReferenceDefinition ref = def.findReferenceDefinition(UserType.F_LINK_REF);
    InlineMenuItem item;
    PrismPropertyDefinition<ActivationStatusType> administrativeStatus = def.findPropertyDefinition(SchemaConstants.PATH_ACTIVATION_ADMINISTRATIVE_STATUS);
    if (administrativeStatus.canRead() && administrativeStatus.canModify()) {
        item = new ButtonInlineMenuItem(createStringResource("pageAdminFocus.button.enable")) {

            private static final long serialVersionUID = 1L;

            @Override
            public InlineMenuItemAction initAction() {
                return new ColumnMenuAction() {

                    private static final long serialVersionUID = 1L;

                    @Override
                    public void onClick(AjaxRequestTarget target) {
                        updateShadowActivation(target, getMultivalueContainerListPanel().getPerformedSelectedItems(getRowModel()), true);
                    }
                };
            }

            @Override
            public CompositedIconBuilder getIconCompositedBuilder() {
                return getDefaultCompositedIconBuilder("fa fa-check");
            }
        };
        items.add(item);
        item = new InlineMenuItem(createStringResource("pageAdminFocus.button.disable")) {

            private static final long serialVersionUID = 1L;

            @Override
            public InlineMenuItemAction initAction() {
                return new ColumnMenuAction() {

                    private static final long serialVersionUID = 1L;

                    @Override
                    public void onClick(AjaxRequestTarget target) {
                        updateShadowActivation(target, getMultivalueContainerListPanel().getPerformedSelectedItems(getRowModel()), false);
                    }
                };
            }
        };
        items.add(item);
    }
    if (ref.canRead() && ref.canAdd()) {
        item = new InlineMenuItem(createStringResource("pageAdminFocus.button.unlink")) {

            private static final long serialVersionUID = 1L;

            @Override
            public InlineMenuItemAction initAction() {
                return new ColumnMenuAction() {

                    private static final long serialVersionUID = 1L;

                    @Override
                    public void onClick(AjaxRequestTarget target) {
                        unlinkProjectionPerformed(target, getMultivalueContainerListPanel().getPerformedSelectedItems(getRowModel()));
                    }
                };
            }
        };
        items.add(item);
    }
    PrismPropertyDefinition<LockoutStatusType> locakoutStatus = def.findPropertyDefinition(SchemaConstants.PATH_ACTIVATION_LOCKOUT_STATUS);
    if (locakoutStatus.canRead() && locakoutStatus.canModify()) {
        item = new InlineMenuItem(createStringResource("pageAdminFocus.button.unlock")) {

            private static final long serialVersionUID = 1L;

            @Override
            public InlineMenuItemAction initAction() {
                return new ColumnMenuAction() {

                    private static final long serialVersionUID = 1L;

                    @Override
                    public void onClick(AjaxRequestTarget target) {
                        unlockShadowPerformed(target, getMultivalueContainerListPanel().getPerformedSelectedItems(getRowModel()));
                    }
                };
            }
        };
        items.add(item);
    }
    if (administrativeStatus.canRead() && administrativeStatus.canModify()) {
        // items.add(new InlineMenuItem());
        item = new InlineMenuItem(createStringResource("pageAdminFocus.button.delete")) {

            private static final long serialVersionUID = 1L;

            @Override
            public InlineMenuItemAction initAction() {
                return new ColumnMenuAction() {

                    private static final long serialVersionUID = 1L;

                    @Override
                    public void onClick(AjaxRequestTarget target) {
                        deleteProjectionPerformed(target, getMultivalueContainerListPanel().getPerformedSelectedItems(getRowModel()));
                    }
                };
            }
        };
        items.add(item);
    }
    item = new ButtonInlineMenuItem(createStringResource("PageBase.button.edit")) {

        private static final long serialVersionUID = 1L;

        @Override
        public CompositedIconBuilder getIconCompositedBuilder() {
            return getDefaultCompositedIconBuilder(GuiStyleConstants.CLASS_EDIT_MENU_ITEM);
        }

        @Override
        public InlineMenuItemAction initAction() {
            return new ColumnMenuAction() {

                private static final long serialVersionUID = 1L;

                @Override
                public void onClick(AjaxRequestTarget target) {
                    getMultivalueContainerListPanel().editItemPerformed(target, getRowModel(), getMultivalueContainerListPanel().getSelectedItems());
                    target.add(getFeedbackPanel());
                }
            };
        }
    };
    items.add(item);
    return items;
}
Also used : ArrayList(java.util.ArrayList) AjaxRequestTarget(org.apache.wicket.ajax.AjaxRequestTarget) InlineMenuItemAction(com.evolveum.midpoint.web.component.menu.cog.InlineMenuItemAction) CompositedIconBuilder(com.evolveum.midpoint.gui.impl.component.icon.CompositedIconBuilder) ButtonInlineMenuItem(com.evolveum.midpoint.web.component.menu.cog.ButtonInlineMenuItem) InlineMenuItem(com.evolveum.midpoint.web.component.menu.cog.InlineMenuItem) ColumnMenuAction(com.evolveum.midpoint.web.component.data.column.ColumnMenuAction) ButtonInlineMenuItem(com.evolveum.midpoint.web.component.menu.cog.ButtonInlineMenuItem)

Example 19 with InlineMenuItemAction

use of com.evolveum.midpoint.web.component.menu.cog.InlineMenuItemAction in project midpoint by Evolveum.

the class AbstractRoleMemberPanel method createRowActions.

protected List<InlineMenuItem> createRowActions() {
    List<InlineMenuItem> menu = new ArrayList<>();
    createAssignMemberRowAction(menu);
    createUnassignMemberRowAction(menu);
    createRecomputeMemberRowAction(menu);
    if (isAuthorized(GuiAuthorizationConstants.MEMBER_OPERATION_CREATE)) {
        menu.add(new InlineMenuItem(createStringResource("abstractRoleMemberPanel.menu.create")) {

            private static final long serialVersionUID = 1L;

            @Override
            public InlineMenuItemAction initAction() {
                return new HeaderMenuAction(AbstractRoleMemberPanel.this) {

                    private static final long serialVersionUID = 1L;

                    @Override
                    public void onClick(AjaxRequestTarget target) {
                        createFocusMemberPerformed(target);
                    }
                };
            }
        });
    }
    if (isAuthorized(GuiAuthorizationConstants.MEMBER_OPERATION_DELETE)) {
        menu.add(new InlineMenuItem(createStringResource("abstractRoleMemberPanel.menu.delete")) {

            private static final long serialVersionUID = 1L;

            @Override
            public InlineMenuItemAction initAction() {
                return new HeaderMenuAction(AbstractRoleMemberPanel.this) {

                    private static final long serialVersionUID = 1L;

                    @Override
                    public void onClick(AjaxRequestTarget target) {
                        deleteMembersPerformed(target);
                    }
                };
            }
        });
    }
    return menu;
}
Also used : HeaderMenuAction(com.evolveum.midpoint.web.page.admin.configuration.component.HeaderMenuAction) AjaxRequestTarget(org.apache.wicket.ajax.AjaxRequestTarget) InlineMenuItemAction(com.evolveum.midpoint.web.component.menu.cog.InlineMenuItemAction) ButtonInlineMenuItem(com.evolveum.midpoint.web.component.menu.cog.ButtonInlineMenuItem) InlineMenuItem(com.evolveum.midpoint.web.component.menu.cog.InlineMenuItem)

Example 20 with InlineMenuItemAction

use of com.evolveum.midpoint.web.component.menu.cog.InlineMenuItemAction in project midpoint by Evolveum.

the class ListMappingPanel method initLayout.

private void initLayout() {
    MultivalueContainerListPanelWithDetailsPanel<MappingType> table = new MultivalueContainerListPanelWithDetailsPanel<MappingType>(ID_TABLE, MappingType.class) {

        @Override
        protected MultivalueContainerDetailsPanel<MappingType> getMultivalueContainerDetailsPanel(ListItem<PrismContainerValueWrapper<MappingType>> item) {
            return new MultivalueContainerDetailsPanel<>(MultivalueContainerListPanelWithDetailsPanel.ID_ITEM_DETAILS, item.getModel(), true) {

                @Override
                protected DisplayNamePanel<MappingType> createDisplayNamePanel(String displayNamePanelId) {
                    ItemRealValueModel<MappingType> displayNameModel = new ItemRealValueModel<>(item.getModel());
                    return new DisplayNamePanel<>(displayNamePanelId, displayNameModel) {

                        @Override
                        protected IModel<String> createHeaderModel() {
                            IModel<String> headerModel = super.createHeaderModel();
                            if (StringUtils.isEmpty(headerModel.getObject())) {
                                return getPageBase().createStringResource("feedbackMessagePanel.message.undefined");
                            }
                            return headerModel;
                        }
                    };
                }

                @Override
                protected ItemVisibility getBasicTabVisibity(ItemWrapper<?, ?> itemWrapper) {
                    if (itemWrapper.getPath().isSubPathOrEquivalent(ItemPath.create(ItemPath.EMPTY_PATH, MappingType.F_METADATA_MAPPING))) {
                        return ItemVisibility.HIDDEN;
                    }
                    return ItemVisibility.AUTO;
                }
            };
        }

        @Override
        protected boolean isCreateNewObjectVisible() {
            return true;
        }

        @Override
        protected IModel<PrismContainerWrapper<MappingType>> getContainerModel() {
            return ListMappingPanel.this.getModel();
        }

        @Override
        protected UserProfileStorage.TableId getTableId() {
            return null;
        }

        @Override
        protected List<IColumn<PrismContainerValueWrapper<MappingType>, String>> createDefaultColumns() {
            List<IColumn<PrismContainerValueWrapper<MappingType>, String>> columns = new ArrayList<>();
            columns.add(new PrismPropertyWrapperColumn<>(ListMappingPanel.this.getModel(), MappingType.F_DESCRIPTION, AbstractItemWrapperColumn.ColumnType.STRING, getPageBase()));
            columns.add(new PrismPropertyWrapperColumn<>(ListMappingPanel.this.getModel(), MappingType.F_ENABLED, AbstractItemWrapperColumn.ColumnType.VALUE, getPageBase()));
            columns.add(new AbstractColumn<>(createStringResource("ListMappingPanel.mappingDescription")) {

                @Override
                public void populateItem(Item<ICellPopulator<PrismContainerValueWrapper<MappingType>>> cellItem, String componentId, IModel<PrismContainerValueWrapper<MappingType>> rowModel) {
                    cellItem.add(new Label(componentId, WebComponentUtil.createMappingDescription(rowModel)));
                }
            });
            List<InlineMenuItem> items = new ArrayList<>();
            InlineMenuItem item = new InlineMenuItem(createStringResource("pageAdminFocus.button.delete")) {

                private static final long serialVersionUID = 1L;

                @Override
                public InlineMenuItemAction initAction() {
                    return new ColumnMenuAction() {

                        private static final long serialVersionUID = 1L;

                        @Override
                        public void onClick(AjaxRequestTarget target) {
                            deleteItemPerformed(target, getPerformedSelectedItems(getRowModel()));
                        }
                    };
                }
            };
            items.add(item);
            item = new ButtonInlineMenuItem(createStringResource("PageBase.button.edit")) {

                private static final long serialVersionUID = 1L;

                @Override
                public CompositedIconBuilder getIconCompositedBuilder() {
                    return getDefaultCompositedIconBuilder(GuiStyleConstants.CLASS_EDIT_MENU_ITEM);
                }

                @Override
                public InlineMenuItemAction initAction() {
                    return new ColumnMenuAction() {

                        private static final long serialVersionUID = 1L;

                        @Override
                        public void onClick(AjaxRequestTarget target) {
                            editItemPerformed(target, getRowModel(), getSelectedItems());
                            target.add(getFeedbackPanel());
                        }
                    };
                }
            };
            items.add(item);
            columns.add(new InlineMenuButtonColumn(items, getPageBase()) {

                @Override
                public String getCssClass() {
                    return "col-xs-1";
                }
            });
            return columns;
        }

        @Override
        protected IColumn<PrismContainerValueWrapper<MappingType>, String> createNameColumn(IModel<String> displayModel, GuiObjectColumnType customColumn, ItemPath itemPath, ExpressionType expression) {
            return new PrismPropertyWrapperColumn<>(ListMappingPanel.this.getModel(), MappingType.F_NAME, AbstractItemWrapperColumn.ColumnType.LINK, getPageBase()) {

                @Override
                protected void onClick(AjaxRequestTarget target, IModel<PrismContainerValueWrapper<MappingType>> model) {
                    itemDetailsPerformed(target, model);
                }
            };
        }

        @Override
        protected IColumn<PrismContainerValueWrapper<MappingType>, String> createCheckboxColumn() {
            return new CheckBoxHeaderColumn<>();
        }

        @Override
        protected PrismContainerDefinition<MappingType> getTypeDefinitionForSearch() {
            return getPrismContext().getSchemaRegistry().findContainerDefinitionByType(MappingType.COMPLEX_TYPE);
        }
    };
    add(table);
}
Also used : MultivalueContainerDetailsPanel(com.evolveum.midpoint.gui.impl.component.MultivalueContainerDetailsPanel) PrismContainerWrapper(com.evolveum.midpoint.gui.api.prism.wrapper.PrismContainerWrapper) ArrayList(java.util.ArrayList) Label(org.apache.wicket.markup.html.basic.Label) ItemWrapper(com.evolveum.midpoint.gui.api.prism.wrapper.ItemWrapper) UserProfileStorage(com.evolveum.midpoint.web.session.UserProfileStorage) DisplayNamePanel(com.evolveum.midpoint.gui.api.component.DisplayNamePanel) CheckBoxHeaderColumn(com.evolveum.midpoint.web.component.data.column.CheckBoxHeaderColumn) CompositedIconBuilder(com.evolveum.midpoint.gui.impl.component.icon.CompositedIconBuilder) InlineMenuItem(com.evolveum.midpoint.web.component.menu.cog.InlineMenuItem) ButtonInlineMenuItem(com.evolveum.midpoint.web.component.menu.cog.ButtonInlineMenuItem) ColumnMenuAction(com.evolveum.midpoint.web.component.data.column.ColumnMenuAction) ButtonInlineMenuItem(com.evolveum.midpoint.web.component.menu.cog.ButtonInlineMenuItem) IModel(org.apache.wicket.model.IModel) PrismPropertyWrapperColumn(com.evolveum.midpoint.gui.impl.component.data.column.PrismPropertyWrapperColumn) InlineMenuButtonColumn(com.evolveum.midpoint.web.component.data.column.InlineMenuButtonColumn) ItemRealValueModel(com.evolveum.midpoint.gui.impl.factory.panel.ItemRealValueModel) ICellPopulator(org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator) AjaxRequestTarget(org.apache.wicket.ajax.AjaxRequestTarget) IColumn(org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn) MultivalueContainerListPanelWithDetailsPanel(com.evolveum.midpoint.gui.impl.component.MultivalueContainerListPanelWithDetailsPanel) InlineMenuItemAction(com.evolveum.midpoint.web.component.menu.cog.InlineMenuItemAction) ListItem(org.apache.wicket.markup.html.list.ListItem) PrismContainerValueWrapper(com.evolveum.midpoint.gui.api.prism.wrapper.PrismContainerValueWrapper) ItemPath(com.evolveum.midpoint.prism.path.ItemPath)

Aggregations

InlineMenuItemAction (com.evolveum.midpoint.web.component.menu.cog.InlineMenuItemAction)44 InlineMenuItem (com.evolveum.midpoint.web.component.menu.cog.InlineMenuItem)43 AjaxRequestTarget (org.apache.wicket.ajax.AjaxRequestTarget)39 ArrayList (java.util.ArrayList)32 ButtonInlineMenuItem (com.evolveum.midpoint.web.component.menu.cog.ButtonInlineMenuItem)28 CompositedIconBuilder (com.evolveum.midpoint.gui.impl.component.icon.CompositedIconBuilder)26 IModel (org.apache.wicket.model.IModel)19 ColumnMenuAction (com.evolveum.midpoint.web.component.data.column.ColumnMenuAction)11 SelectableBeanImpl (com.evolveum.midpoint.web.component.util.SelectableBeanImpl)10 SelectableBean (com.evolveum.midpoint.web.component.util.SelectableBean)8 List (java.util.List)6 ListItem (org.apache.wicket.markup.html.list.ListItem)6 PrismContainerValueWrapper (com.evolveum.midpoint.gui.api.prism.wrapper.PrismContainerValueWrapper)5 HeaderMenuAction (com.evolveum.midpoint.web.page.admin.configuration.component.HeaderMenuAction)5 QName (javax.xml.namespace.QName)5 DropdownButtonDto (com.evolveum.midpoint.gui.api.component.button.DropdownButtonDto)4 DropdownButtonPanel (com.evolveum.midpoint.gui.api.component.button.DropdownButtonPanel)4 VisibleBehaviour (com.evolveum.midpoint.web.component.util.VisibleBehaviour)4 WebMarkupContainer (org.apache.wicket.markup.html.WebMarkupContainer)4 Label (org.apache.wicket.markup.html.basic.Label)4