From f29a0851f9f1e90c20c425f324a5f6a1a69c5c26 Mon Sep 17 00:00:00 2001 From: kate Date: Sat, 25 Aug 2018 00:05:31 +0200 Subject: [PATCH 01/16] first changes for menu items refactoring --- .../gui/api/component/ObjectListPanel.java | 51 ++-- .../api/component/PopupObjectListPanel.java | 5 + .../component/button/DropdownButtonPanel.java | 2 - .../gui/api/util/WebComponentUtil.java | 29 ++ .../MultivalueContainerListPanel.java | 53 ++-- .../component/GlobalPolicyRuleTabPanel.java | 2 +- .../LoggingConfigurationTabPanel.java | 4 +- .../component/NotificationConfigTabPanel.java | 38 ++- .../ObjectPolicyConfigurationTabPanel.java | 2 +- .../component/assignment/AssignmentPanel.java | 68 +++-- .../assignment/AssignmentTablePanel.java | 59 ++-- .../data/column/InlineMenuButtonColumn.java | 59 +--- .../component/input/ExpressionValuePanel.java | 82 +++-- .../menu/cog/ButtonInlineMenuItem.java | 35 +++ .../component/menu/cog/InlineMenuItem.java | 151 ++------- .../web/component/menu/cog/MenuLinkPanel.java | 5 +- .../FocusProjectionsTabPanel.java | 82 +++-- .../UserDelegationsTabPanel.java | 24 +- .../web/component/search/SearchPanel.java | 59 ++-- .../util/FocusListInlineMenuHelper.java | 92 +++--- .../web/page/admin/cases/PageCases.java | 4 - .../certification/PageCertCampaigns.java | 103 +++++-- .../certification/PageCertDecisions.java | 15 +- .../admin/configuration/PageDebugList.java | 144 ++++++--- .../web/page/admin/orgs/OrgTreePanel.java | 25 +- .../admin/reports/PageCreatedReports.java | 35 ++- .../web/page/admin/reports/PageReports.java | 71 ++--- .../admin/resources/PageConnectorHosts.java | 25 +- .../page/admin/resources/PageResources.java | 169 ++++++---- .../admin/resources/ResourceContentPanel.java | 175 ++++++++--- .../web/page/admin/roles/PageRoles.java | 21 +- .../roles/RoleGovernanceMemberPanel.java | 120 +++++--- .../web/page/admin/server/PageTasks.java | 289 ++++++++---------- .../web/page/admin/services/PageServices.java | 16 - .../web/page/admin/users/PageUsers.java | 163 +++++----- .../component/AbstractRoleMemberPanel.java | 140 +++++---- .../admin/users/component/OrgMemberPanel.java | 63 ++-- .../admin/users/component/TreeTablePanel.java | 86 ++++-- .../admin/valuePolicy/PageValuePolicies.java | 47 +-- .../web/page/self/PageAssignmentsList.java | 14 +- 40 files changed, 1506 insertions(+), 1121 deletions(-) create mode 100644 gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/menu/cog/ButtonInlineMenuItem.java diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/ObjectListPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/ObjectListPanel.java index 33d97c79496..c32dd00c118 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/ObjectListPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/ObjectListPanel.java @@ -24,7 +24,9 @@ import com.evolveum.midpoint.prism.path.ItemPath; import com.evolveum.midpoint.schema.constants.ObjectTypes; import com.evolveum.midpoint.schema.result.OperationResult; +import com.evolveum.midpoint.schema.util.ObjectTypeUtil; import com.evolveum.midpoint.task.api.Task; +import com.evolveum.midpoint.web.component.data.column.InlineMenuButtonColumn; import com.evolveum.midpoint.xml.ns._public.common.common_3.*; import org.apache.commons.lang3.StringUtils; import org.apache.wicket.Component; @@ -188,6 +190,13 @@ private BoxedTablePanel> createTable() { } else { columns = initColumns(); } + List menuItems = createInlineMenu(); + getCustomActions(menuItems); + + if (menuItems != null && menuItems.size() > 0) { + InlineMenuButtonColumn> actionsColumn = new InlineMenuButtonColumn<>(menuItems, parentPage); + columns.add(actionsColumn); + } BaseSortableDataProvider> provider = initProvider(); @@ -247,10 +256,6 @@ protected List, String>> initCustomColumns() { columns.add(iconColumn); columns.addAll(getCustomColumnsTransformed(customColumns)); - IColumn, String> actionsColumn = createActionsColumn(); - if (actionsColumn != null){ - columns.add(actionsColumn); - } LOGGER.trace("Finished to init custom columns, created columns {}", columns); return columns; } @@ -365,10 +370,6 @@ protected List, String>> initColumns() { List, String>> others = createColumns(); columns.addAll(others); - IColumn, String> actionsColumn = createActionsColumn(); - if (actionsColumn != null) { - columns.add(createActionsColumn()); - } LOGGER.trace("Finished to init columns, created columns {}", columns); return columns; } @@ -393,10 +394,12 @@ protected void saveProviderPaging(ObjectQuery query, ObjectPaging paging) { @Override public SelectableBean createDataObjectWrapper(O obj) { SelectableBean bean = super.createDataObjectWrapper(obj); - List inlineMenu = createInlineMenu(); - if (inlineMenu != null) { - bean.getMenuItems().addAll(inlineMenu); - } + + //TODO do we need that? +// List inlineMenu = createInlineMenu(); +// if (inlineMenu != null) { +// bean.getMenuItems().addAll(inlineMenu); +// } return bean; } @@ -606,18 +609,32 @@ public StringResourceModel createStringResource(String resourceKey, Object... ob protected abstract List, String>> createColumns(); - protected IColumn, String> createActionsColumn(){ - return null; - } - protected abstract List createInlineMenu(); + protected void getCustomActions(List actionsList){ + GuiObjectListViewType guiObjectListViewType = getGuiObjectListViewType(); + if (guiObjectListViewType != null && guiObjectListViewType.getAction() != null && + guiObjectListViewType.getAction().size() > 0){ + if (actionsList == null){ + actionsList = new ArrayList<>(); + } + List customActions = WebComponentUtil.createMenuItemsFromActions(guiObjectListViewType.getAction()); + if (customActions != null) { + actionsList.addAll(customActions); + } + } + } public void addPerformed(AjaxRequestTarget target, List selected) { parentPage.hideMainPopup(target); } private List getGuiObjectColumnTypeList(){ + GuiObjectListViewType guiObjectListViewType = getGuiObjectListViewType(); + return guiObjectListViewType != null ? guiObjectListViewType.getColumn() : null; + } + + private GuiObjectListViewType getGuiObjectListViewType(){ AdminGuiConfigurationType adminGuiConfig = parentPage.getPrincipal().getAdminGuiConfiguration(); if (adminGuiConfig != null && adminGuiConfig.getObjectLists() != null && adminGuiConfig.getObjectLists().getObjectList() != null){ @@ -626,7 +643,7 @@ private List getGuiObjectColumnTypeList(){ !type.getClassDefinition().getSimpleName().equals(object.getType().getLocalPart())){ continue; } - return object.getColumn(); + return object; } } return null; diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/PopupObjectListPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/PopupObjectListPanel.java index f77b3366980..1ee3ba01025 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/PopupObjectListPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/PopupObjectListPanel.java @@ -143,6 +143,11 @@ protected List createInlineMenu() { return null; } + @Override + protected void getCustomActions(List actionsList){ + } + + protected void onUpdateCheckbox(AjaxRequestTarget target){ } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/button/DropdownButtonPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/button/DropdownButtonPanel.java index e67936136b3..d2d2ccc24cc 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/button/DropdownButtonPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/button/DropdownButtonPanel.java @@ -107,8 +107,6 @@ public WebMarkupContainer getButtonContainer() { } private void initMenuItem(ListItem menuItem) { - final InlineMenuItem item = menuItem.getModelObject(); - WebMarkupContainer menuItemBody = new MenuLinkPanel(ID_MENU_ITEM_BODY, menuItem.getModel()); menuItemBody.setRenderBodyOnly(true); menuItem.add(menuItemBody); diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/util/WebComponentUtil.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/util/WebComponentUtil.java index 4b4839add93..5e4fa7dd2e1 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/util/WebComponentUtil.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/util/WebComponentUtil.java @@ -58,6 +58,8 @@ import com.evolveum.midpoint.util.*; import com.evolveum.midpoint.util.exception.ObjectNotFoundException; import com.evolveum.midpoint.web.component.data.SelectableBeanObjectDataProvider; +import com.evolveum.midpoint.web.component.menu.cog.InlineMenuItem; +import com.evolveum.midpoint.web.component.menu.cog.InlineMenuItemAction; import com.evolveum.midpoint.web.component.prism.*; import com.evolveum.midpoint.web.util.ObjectTypeGuiDescriptor; import com.evolveum.midpoint.xml.ns._public.common.common_3.*; @@ -2546,4 +2548,31 @@ public static LookupTableType createAppenderChoices(PageBase pageBase) { } return lookupTable; } + + public static List createMenuItemsFromActions(List actions){ + List menuItems = new ArrayList<>(); + if (actions == null || actions.size() == 0){ + return menuItems; + } + actions.forEach(action -> { + String label = action.getDisplay() != null && StringUtils.isNotEmpty(action.getDisplay().getLabel()) ? + action.getDisplay().getLabel() : action.getName(); + new InlineMenuItem(Model.of(label)){ + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction(){ + return new InlineMenuItemAction() { + private static final long serialVersionUID = 1L; + + @Override + public void onClick(AjaxRequestTarget target) { + //TODO run task from action + } + }; + } + }; + }); + return menuItems; + } } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/impl/component/MultivalueContainerListPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/impl/component/MultivalueContainerListPanel.java index 74f8a6fd44f..412fb78e2ac 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/impl/component/MultivalueContainerListPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/impl/component/MultivalueContainerListPanel.java @@ -19,17 +19,13 @@ import java.util.List; import java.util.stream.Collectors; -import javax.xml.namespace.QName; - -import org.apache.commons.lang3.StringUtils; +import com.evolveum.midpoint.web.component.menu.cog.ButtonInlineMenuItem; +import com.evolveum.midpoint.web.component.menu.cog.InlineMenuItemAction; import org.apache.wicket.AttributeModifier; import org.apache.wicket.Component; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn; import org.apache.wicket.markup.html.WebMarkupContainer; -import org.apache.wicket.markup.html.list.ListItem; -import org.apache.wicket.markup.html.list.ListView; -import org.apache.wicket.markup.html.panel.Fragment; import org.apache.wicket.markup.repeater.Item; import org.apache.wicket.model.AbstractReadOnlyModel; import org.apache.wicket.model.IModel; @@ -38,47 +34,34 @@ import com.evolveum.midpoint.gui.api.GuiStyleConstants; import com.evolveum.midpoint.gui.api.component.BasePanel; -import com.evolveum.midpoint.gui.api.component.ObjectListPanel; import com.evolveum.midpoint.gui.api.model.LoadableModel; -import com.evolveum.midpoint.gui.impl.model.PropertyWrapperFromContainerValueWrapperModel; import com.evolveum.midpoint.gui.impl.util.GuiImplUtil; import com.evolveum.midpoint.prism.Containerable; import com.evolveum.midpoint.prism.PrismContainerDefinition; import com.evolveum.midpoint.prism.PrismContainerValue; import com.evolveum.midpoint.prism.PrismObject; -import com.evolveum.midpoint.prism.path.ItemPath; import com.evolveum.midpoint.prism.query.ObjectPaging; import com.evolveum.midpoint.prism.query.ObjectQuery; import com.evolveum.midpoint.task.api.Task; import com.evolveum.midpoint.util.logging.Trace; import com.evolveum.midpoint.util.logging.TraceManager; -import com.evolveum.midpoint.web.component.AjaxButton; import com.evolveum.midpoint.web.component.AjaxIconButton; -import com.evolveum.midpoint.web.component.data.BaseSortableDataProvider; import com.evolveum.midpoint.web.component.data.BoxedTablePanel; import com.evolveum.midpoint.web.component.data.Table; import com.evolveum.midpoint.web.component.data.column.ColumnMenuAction; -import com.evolveum.midpoint.web.component.data.column.DoubleButtonColumn; import com.evolveum.midpoint.web.component.menu.cog.InlineMenuItem; import com.evolveum.midpoint.web.component.objectdetails.FocusMainPanel; import com.evolveum.midpoint.web.component.prism.ContainerValueWrapper; import com.evolveum.midpoint.web.component.prism.ContainerWrapper; import com.evolveum.midpoint.web.component.prism.ContainerWrapperFactory; -import com.evolveum.midpoint.web.component.prism.ObjectWrapper; import com.evolveum.midpoint.web.component.prism.ValueStatus; -import com.evolveum.midpoint.web.component.prism.ValueWrapper; import com.evolveum.midpoint.web.component.search.Search; -import com.evolveum.midpoint.web.component.search.SearchFactory; import com.evolveum.midpoint.web.component.search.SearchFormPanel; import com.evolveum.midpoint.web.component.search.SearchItemDefinition; import com.evolveum.midpoint.web.component.util.MultivalueContainerListDataProvider; -import com.evolveum.midpoint.web.component.util.SelectableBean; import com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour; import com.evolveum.midpoint.web.session.PageStorage; import com.evolveum.midpoint.web.session.UserProfileStorage.TableId; -import com.evolveum.midpoint.xml.ns._public.common.common_3.AssignmentType; -import com.evolveum.midpoint.xml.ns._public.common.common_3.GlobalPolicyRuleType; -import com.evolveum.midpoint.xml.ns._public.common.common_3.PolicyRuleType; /** * @author skublik @@ -457,13 +440,33 @@ private void deleteItemPerformed(AjaxRequestTarget target, List getDefaultMenuActions() { List menuItems = new ArrayList<>(); - menuItems.add(new InlineMenuItem(createStringResource("PageBase.button.unassign"), new Model<>(true), - new Model<>(true), false, createDeleteColumnAction(), 0, GuiStyleConstants.CLASS_DELETE_MENU_ITEM, - DoubleButtonColumn.BUTTON_COLOR_CLASS.DANGER.toString())); + menuItems.add(new ButtonInlineMenuItem(createStringResource("PageBase.button.unassign")) { + private static final long serialVersionUID = 1L; + + @Override + public String getButtonIconCssClass() { + return GuiStyleConstants.CLASS_DELETE_MENU_ITEM; + } + + @Override + public InlineMenuItemAction getAction() { + return createDeleteColumnAction(); + } + }); - menuItems.add(new InlineMenuItem(createStringResource("PageBase.button.edit"), new Model<>(true), - new Model<>(true), false, createEditColumnAction(), 1, GuiStyleConstants.CLASS_EDIT_MENU_ITEM, - DoubleButtonColumn.BUTTON_COLOR_CLASS.DEFAULT.toString())); + menuItems.add(new ButtonInlineMenuItem(createStringResource("PageBase.button.edit")) { + private static final long serialVersionUID = 1L; + + @Override + public String getButtonIconCssClass() { + return GuiStyleConstants.CLASS_EDIT_MENU_ITEM; + } + + @Override + public InlineMenuItemAction getAction() { + return createEditColumnAction(); + } + }); return menuItems; } } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/impl/page/admin/configuration/component/GlobalPolicyRuleTabPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/impl/page/admin/configuration/component/GlobalPolicyRuleTabPanel.java index e8b4a16020a..3cbb3b5bc7a 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/impl/page/admin/configuration/component/GlobalPolicyRuleTabPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/impl/page/admin/configuration/component/GlobalPolicyRuleTabPanel.java @@ -333,7 +333,7 @@ public void populateItem(Item menuActionsList = getMultivalueContainerListPanel().getDefaultMenuActions(); - columns.add(new InlineMenuButtonColumn<>(menuActionsList, menuActionsList.size(), getPageBase())); + columns.add(new InlineMenuButtonColumn<>(menuActionsList, getPageBase())); return columns; } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/impl/page/admin/configuration/component/LoggingConfigurationTabPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/impl/page/admin/configuration/component/LoggingConfigurationTabPanel.java index 878b97f7b02..610294d85ab 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/impl/page/admin/configuration/component/LoggingConfigurationTabPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/impl/page/admin/configuration/component/LoggingConfigurationTabPanel.java @@ -366,7 +366,7 @@ public void onClick(AjaxRequestTarget target, IModel(createStringResource("LoggingConfigurationTabPanel.loggers.appender"), ClassLoggerConfigurationType.F_APPENDER, getPageBase())); List menuActionsList = getLoggersMultivalueContainerListPanel().getDefaultMenuActions(); - columns.add(new InlineMenuButtonColumn<>(menuActionsList, menuActionsList.size(), getPageBase())); + columns.add(new InlineMenuButtonColumn<>(menuActionsList, getPageBase())); return columns; } @@ -577,7 +577,7 @@ public void onClick(AjaxRequestTarget target, IModel menuActionsList = getAppendersMultivalueContainerListPanel().getDefaultMenuActions(); - columns.add(new InlineMenuButtonColumn<>(menuActionsList, menuActionsList.size(), getPageBase())); + columns.add(new InlineMenuButtonColumn<>(menuActionsList, getPageBase())); return columns; } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/impl/page/admin/configuration/component/NotificationConfigTabPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/impl/page/admin/configuration/component/NotificationConfigTabPanel.java index 56f41b16a45..93d74ec8fd6 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/impl/page/admin/configuration/component/NotificationConfigTabPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/impl/page/admin/configuration/component/NotificationConfigTabPanel.java @@ -31,6 +31,8 @@ import com.evolveum.midpoint.gui.impl.component.data.column.EditableColumn; import com.evolveum.midpoint.gui.impl.component.form.TriStateFormGroup; +import com.evolveum.midpoint.web.component.menu.cog.ButtonInlineMenuItem; +import com.evolveum.midpoint.web.component.menu.cog.InlineMenuItemAction; import org.apache.commons.lang3.StringUtils; import org.apache.wicket.AttributeModifier; import org.apache.wicket.Component; @@ -61,7 +63,6 @@ import com.evolveum.midpoint.web.component.data.BoxedTablePanel; import com.evolveum.midpoint.web.component.data.column.CheckBoxHeaderColumn; import com.evolveum.midpoint.web.component.data.column.ColumnMenuAction; -import com.evolveum.midpoint.web.component.data.column.DoubleButtonColumn; import com.evolveum.midpoint.web.component.data.column.EditableLinkColumn; import com.evolveum.midpoint.web.component.data.column.IconColumn; import com.evolveum.midpoint.web.component.data.column.InlineMenuButtonColumn; @@ -74,7 +75,6 @@ import com.evolveum.midpoint.web.component.prism.ContainerWrapper; import com.evolveum.midpoint.web.component.prism.InputPanel; import com.evolveum.midpoint.web.component.prism.PropertyWrapper; -import com.evolveum.midpoint.web.component.prism.ValueStatus; import com.evolveum.midpoint.web.component.prism.ValueWrapper; import com.evolveum.midpoint.web.component.util.Editable; import com.evolveum.midpoint.web.component.util.ListDataProvider; @@ -452,20 +452,40 @@ protected Component createInputPanel(String componentId, IModel menuActionsList = getMenuActions(); - columns.add(new InlineMenuButtonColumn<>(menuActionsList, menuActionsList.size(), getPageBase())); + columns.add(new InlineMenuButtonColumn<>(menuActionsList, getPageBase())); return columns; } private List getMenuActions() { List menuItems = new ArrayList<>(); - menuItems.add(new InlineMenuItem(createStringResource("PageBase.button.unassign"), new Model<>(true), - new Model<>(true), false, createDeleteColumnAction(), 0, GuiStyleConstants.CLASS_DELETE_MENU_ITEM, - DoubleButtonColumn.BUTTON_COLOR_CLASS.DANGER.toString())); + menuItems.add(new ButtonInlineMenuItem(createStringResource("PageBase.button.unassign")) { + private static final long serialVersionUID = 1L; + + @Override + public String getButtonIconCssClass() { + return GuiStyleConstants.CLASS_DELETE_MENU_ITEM; + } + + @Override + public InlineMenuItemAction getAction() { + return createDeleteColumnAction(); + } + }); - menuItems.add(new InlineMenuItem(createStringResource("PageBase.button.edit"), new Model<>(true), - new Model<>(true), false, createEditColumnAction(), 1, GuiStyleConstants.CLASS_EDIT_MENU_ITEM, - DoubleButtonColumn.BUTTON_COLOR_CLASS.DEFAULT.toString())); + menuItems.add(new ButtonInlineMenuItem(createStringResource("PageBase.button.edit")) { + private static final long serialVersionUID = 1L; + + @Override + public String getButtonIconCssClass() { + return GuiStyleConstants.CLASS_EDIT_MENU_ITEM; + } + + @Override + public InlineMenuItemAction getAction() { + return createEditColumnAction(); + } + }); return menuItems; } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/impl/page/admin/configuration/component/ObjectPolicyConfigurationTabPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/impl/page/admin/configuration/component/ObjectPolicyConfigurationTabPanel.java index 27f88ec8471..35410074c3d 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/impl/page/admin/configuration/component/ObjectPolicyConfigurationTabPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/impl/page/admin/configuration/component/ObjectPolicyConfigurationTabPanel.java @@ -362,7 +362,7 @@ public void populateItem(Item menuActionsList = getMultivalueContainerListPanel().getDefaultMenuActions(); - columns.add(new InlineMenuButtonColumn<>(menuActionsList, menuActionsList.size(), getPageBase())); + columns.add(new InlineMenuButtonColumn<>(menuActionsList, getPageBase())); return columns; } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AssignmentPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AssignmentPanel.java index 06f7e9ce0dc..31545231a15 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AssignmentPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AssignmentPanel.java @@ -18,9 +18,7 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.List; -import java.util.stream.Collectors; -import com.evolveum.midpoint.gui.api.model.LoadableModel; import com.evolveum.midpoint.gui.api.util.WebModelServiceUtils; import com.evolveum.midpoint.gui.impl.component.MultivalueContainerDetailsPanel; import com.evolveum.midpoint.gui.impl.component.MultivalueContainerListPanelWithDetailsPanel; @@ -30,14 +28,11 @@ import com.evolveum.midpoint.prism.PrismContainerValue; import com.evolveum.midpoint.prism.PrismObject; import com.evolveum.midpoint.prism.path.ItemPath; -import com.evolveum.midpoint.schema.result.OperationResult; import com.evolveum.midpoint.util.logging.Trace; import com.evolveum.midpoint.util.logging.TraceManager; -import com.evolveum.midpoint.web.component.objectdetails.FocusMainPanel; +import com.evolveum.midpoint.web.component.menu.cog.ButtonInlineMenuItem; +import com.evolveum.midpoint.web.component.menu.cog.InlineMenuItemAction; import com.evolveum.midpoint.web.component.prism.*; -import com.evolveum.midpoint.web.component.search.Search; -import com.evolveum.midpoint.web.component.search.SearchFactory; -import com.evolveum.midpoint.web.component.search.SearchFormPanel; import com.evolveum.midpoint.web.component.search.SearchItemDefinition; import com.evolveum.midpoint.xml.ns._public.common.common_3.*; import org.apache.commons.lang.StringUtils; @@ -48,7 +43,6 @@ import org.apache.wicket.markup.html.WebMarkupContainer; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.list.ListItem; -import org.apache.wicket.markup.html.list.ListView; import org.apache.wicket.markup.html.panel.Fragment; import org.apache.wicket.markup.repeater.Item; import org.apache.wicket.model.AbstractReadOnlyModel; @@ -63,19 +57,14 @@ import com.evolveum.midpoint.prism.query.ObjectQuery; import com.evolveum.midpoint.security.api.AuthorizationConstants; import com.evolveum.midpoint.task.api.Task; -import com.evolveum.midpoint.web.component.data.BoxedTablePanel; import com.evolveum.midpoint.web.component.data.column.CheckBoxHeaderColumn; -import com.evolveum.midpoint.web.component.data.column.ColumnMenuAction; -import com.evolveum.midpoint.web.component.data.column.DoubleButtonColumn; import com.evolveum.midpoint.web.component.data.column.IconColumn; import com.evolveum.midpoint.web.component.data.column.InlineMenuButtonColumn; import com.evolveum.midpoint.web.component.data.column.LinkColumn; import com.evolveum.midpoint.web.component.form.Form; import com.evolveum.midpoint.web.component.menu.cog.InlineMenuItem; -import com.evolveum.midpoint.web.component.util.MultivalueContainerListDataProvider; import com.evolveum.midpoint.web.model.ContainerWrapperFromObjectWrapperModel; import com.evolveum.midpoint.web.page.admin.PageAdminObjectDetails; -import com.evolveum.midpoint.web.session.AssignmentsTabStorage; import com.evolveum.midpoint.web.session.UserProfileStorage.TableId; import javax.xml.datatype.XMLGregorianCalendar; @@ -237,7 +226,7 @@ public void populateItem(Item menuActionsList = getAssignmentMenuActions(); - columns.add(new InlineMenuButtonColumn<>(menuActionsList, menuActionsList.size(), getPageBase())); + columns.add(new InlineMenuButtonColumn<>(menuActionsList, getPageBase())); return columns; } @@ -426,30 +415,57 @@ public C getObject() { private List getAssignmentMenuActions() { List menuItems = new ArrayList<>(); PrismObject obj = getMultivalueContainerListPanel().getFocusObject(); - boolean isUnassignMenuAdded = false; try { boolean isUnassignAuthorized = getParentPage().isAuthorized(AuthorizationConstants.AUTZ_UI_ADMIN_UNASSIGN_ACTION_URI, AuthorizationPhaseType.REQUEST, obj, null, null, null); if (isUnassignAuthorized) { - menuItems.add(new InlineMenuItem(createStringResource("PageBase.button.unassign"), new Model<>(true), - new Model<>(true), false, getMultivalueContainerListPanel().createDeleteColumnAction(), 0, GuiStyleConstants.CLASS_DELETE_MENU_ITEM, - DoubleButtonColumn.BUTTON_COLOR_CLASS.DANGER.toString())); - isUnassignMenuAdded = true; + menuItems.add(new ButtonInlineMenuItem(createStringResource("PageBase.button.unassign")) { + private static final long serialVersionUID = 1L; + + @Override + public String getButtonIconCssClass() { + return GuiStyleConstants.CLASS_DELETE_MENU_ITEM; + } + + @Override + public InlineMenuItemAction getAction() { + return getMultivalueContainerListPanel().createDeleteColumnAction(); + } + }); } } catch (Exception ex){ LOGGER.error("Couldn't check unassign authorization for the object: {}, {}", obj.getName(), ex.getLocalizedMessage()); if (WebComponentUtil.isAuthorized(AuthorizationConstants.AUTZ_UI_ADMIN_ASSIGN_ACTION_URI)){ - menuItems.add(new InlineMenuItem(createStringResource("PageBase.button.unassign"), new Model<>(true), - new Model<>(true), false, getMultivalueContainerListPanel().createDeleteColumnAction(), 0, GuiStyleConstants.CLASS_DELETE_MENU_ITEM, - DoubleButtonColumn.BUTTON_COLOR_CLASS.DANGER.toString())); - isUnassignMenuAdded = true; + menuItems.add(new ButtonInlineMenuItem(createStringResource("PageBase.button.unassign")) { + private static final long serialVersionUID = 1L; + + @Override + public String getButtonIconCssClass() { + return GuiStyleConstants.CLASS_DELETE_MENU_ITEM; + } + + @Override + public InlineMenuItemAction getAction() { + return getMultivalueContainerListPanel().createDeleteColumnAction(); + } + }); } } - menuItems.add(new InlineMenuItem(createStringResource("PageBase.button.edit"), new Model<>(true), - new Model<>(true), false, getMultivalueContainerListPanel().createEditColumnAction(), isUnassignMenuAdded ? 1 : 0, GuiStyleConstants.CLASS_EDIT_MENU_ITEM, - DoubleButtonColumn.BUTTON_COLOR_CLASS.DEFAULT.toString())); + menuItems.add(new ButtonInlineMenuItem(createStringResource("PageBase.button.edit")) { + private static final long serialVersionUID = 1L; + + @Override + public String getButtonIconCssClass() { + return GuiStyleConstants.CLASS_EDIT_MENU_ITEM; + } + + @Override + public InlineMenuItemAction getAction() { + return getMultivalueContainerListPanel().createEditColumnAction(); + } + }); return menuItems; } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AssignmentTablePanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AssignmentTablePanel.java index 2abf3059561..8c9640cbcae 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AssignmentTablePanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/assignment/AssignmentTablePanel.java @@ -191,8 +191,12 @@ protected List createAssignmentMenu() { InlineMenuItem item; if (WebComponentUtil.isAuthorized(AuthorizationConstants.AUTZ_UI_ADMIN_ASSIGN_ACTION_URI)) { - item = new InlineMenuItem(createStringResource("AssignmentTablePanel.menu.assign"), - new InlineMenuItemAction() { + item = new InlineMenuItem(createStringResource("AssignmentTablePanel.menu.assign")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new InlineMenuItemAction() { private static final long serialVersionUID = 1L; @Override @@ -206,18 +210,24 @@ protected void addPerformed(AjaxRequestTarget target, List selected, QName relat super.addPerformed(target, selected, relation, kind, intent); addSelectedAssignablePerformed(target, selected, relation, getPageBase().getMainPopup().getId()); - reloadMainFormButtons(target); + reloadMainFormButtons(target); } }; panel.setOutputMarkupId(true); getPageBase().showMainPopup(panel, target); } - }); + }; + } + }; items.add(item); - item = new InlineMenuItem(createStringResource("AssignmentTablePanel.menu.assignOrg"), - new InlineMenuItemAction() { + item = new InlineMenuItem(createStringResource("AssignmentTablePanel.menu.assignOrg")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new InlineMenuItemAction() { private static final long serialVersionUID = 1L; @Override @@ -230,12 +240,12 @@ public void onClick(AjaxRequestTarget target) { @Override protected void assignSelectedOrgPerformed(List selectedOrgs, - AjaxRequestTarget target) { + AjaxRequestTarget target) { // TODO Auto-generated method stub addSelectedAssignablePerformed(target, (List) selectedOrgs, SchemaConstants.ORG_DEFAULT, getPageBase().getMainPopup().getId()); - reloadMainFormButtons(target); - } + reloadMainFormButtons(target); + } }; orgTreePanel.setOutputMarkupId(true); getPageBase().showMainPopup(orgTreePanel, target); @@ -245,32 +255,45 @@ protected void assignSelectedOrgPerformed(List selectedOrgs, } } - }); + }; + } + }; items.add(item); - items.add(new InlineMenuItem()); } if (WebComponentUtil.isAuthorized(AuthorizationConstants.AUTZ_UI_ADMIN_UNASSIGN_ACTION_URI)) { - item = new InlineMenuItem(createStringResource("AssignmentTablePanel.menu.unassign"), - new InlineMenuItemAction() { + item = new InlineMenuItem(createStringResource("AssignmentTablePanel.menu.unassign")){ + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new InlineMenuItemAction() { private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { AssignmentTablePanel.this.deleteAssignmentPerformed(target, null); - } - }); + } + }; + } + }; items.add(item); } if (isShowAllAssignmentsVisible()) { - item = new InlineMenuItem(createStringResource("AssignmentTablePanel.menu.showAllAssignments"), - new InlineMenuItemAction() { + item = new InlineMenuItem(createStringResource("AssignmentTablePanel.menu.showAllAssignments")){ + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new InlineMenuItemAction() { private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { showAllAssignments(target); } - }); + }; + } + }; items.add(item); } return items; diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/column/InlineMenuButtonColumn.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/column/InlineMenuButtonColumn.java index 724d5cfbbcc..d20ab1e1951 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/column/InlineMenuButtonColumn.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/column/InlineMenuButtonColumn.java @@ -21,14 +21,11 @@ import com.evolveum.midpoint.web.component.AjaxIconButton; import com.evolveum.midpoint.web.component.data.MenuMultiButtonPanel; import com.evolveum.midpoint.web.component.dialog.ConfirmationPanel; +import com.evolveum.midpoint.web.component.menu.cog.ButtonInlineMenuItem; import com.evolveum.midpoint.web.component.menu.cog.InlineMenuItem; -import com.evolveum.midpoint.web.component.util.SelectableBean; import com.evolveum.midpoint.web.component.util.VisibleBehaviour; -import com.evolveum.midpoint.xml.ns._public.common.common_3.ActivationStatusType; -import com.evolveum.midpoint.xml.ns._public.common.common_3.FocusType; import org.apache.wicket.Component; import org.apache.wicket.ajax.AjaxRequestTarget; -import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow; import org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator; import org.apache.wicket.extensions.markup.html.repeater.data.table.AbstractColumn; import org.apache.wicket.markup.repeater.Item; @@ -52,14 +49,13 @@ public class InlineMenuButtonColumn extends AbstractColu private static final long serialVersionUID = 1L; - private int buttonsNumber; + private int defaultButtonsNumber = 2; protected List menuItems; private PageBase pageBase; - public InlineMenuButtonColumn(List menuItems, int buttonsNumber, PageBase pageBase) { + public InlineMenuButtonColumn(List menuItems, PageBase pageBase) { super(null); - this.buttonsNumber = menuItems.size() < 2 ? menuItems.size() : buttonsNumber; this.menuItems = menuItems; this.pageBase = pageBase; } @@ -67,17 +63,17 @@ public InlineMenuButtonColumn(List menuItems, int buttonsNumber, @Override public void populateItem(final Item> cellItem, String componentId, final IModel rowModel) { - cellItem.add(getPanel(componentId, rowModel, this.buttonsNumber, this.menuItems)); + cellItem.add(getPanel(componentId, rowModel, defaultButtonsNumber)); } @Override public Component getHeader(String componentId) { - return getPanel(componentId, null, getHeaderNumberOfButtons(), getHeaderMenuItems()); + return getPanel(componentId, null, getHeaderNumberOfButtons()); } private Component getPanel(String componentId, IModel rowModel, - int numberOfButtons, List menuItems) { + int numberOfButtons) { return new MenuMultiButtonPanel(componentId, rowModel, numberOfButtons, createMenuModel(rowModel, menuItems)) { private static final long serialVersionUID = 1L; @@ -137,7 +133,7 @@ private void menuItemClickPerformed(int id, AjaxRequestTarget target, IModel for (InlineMenuItem menuItem : menuItems) { if (menuItem.getId() == id) { if (menuItem.getAction() != null) { - if (menuItem.isShowConfirmationDialog() && menuItem.getConfirmationMessageModel() != null) { + if (menuItem.showConfirmationDialog() && menuItem.getConfirmationMessageModel() != null) { showConfirmationPopup(menuItem, target); } else { menuItem.getAction().onClick(target); @@ -166,38 +162,9 @@ public void yesPerformed(AjaxRequestTarget target) { } public boolean isButtonVisible(int id, IModel model) { - if (model == null || model.getObject() == null) { - return true; - } - if (id == InlineMenuItem.FOCUS_LIST_INLINE_MENU_ITEM_ID.ENABLE.getMenuItemId() && - model.getObject() instanceof SelectableBean && - ((SelectableBean) model.getObject()).getValue() instanceof FocusType) { - FocusType focus = (FocusType) ((SelectableBean) model.getObject()).getValue(); - if (focus.getActivation() == null) { - return false; - } - return ActivationStatusType.DISABLED.equals(focus.getActivation().getEffectiveStatus()); - } else if (id == InlineMenuItem.FOCUS_LIST_INLINE_MENU_ITEM_ID.DISABLE.getMenuItemId() && - model.getObject() instanceof SelectableBean && - ((SelectableBean) model.getObject()).getValue() instanceof FocusType) { - FocusType focus = (FocusType) ((SelectableBean) model.getObject()).getValue(); - if (focus.getActivation() == null) { - return true; - } - return !ActivationStatusType.DISABLED.equals(focus.getActivation().getEffectiveStatus()); - } return true; } - public String getButtonColorCssClass(int id, List menuItems) { - for (InlineMenuItem menuItem : menuItems) { - if (menuItem.getId() == id) { - return menuItem.getButtonColorCssClass(); - } - } - return DoubleButtonColumn.BUTTON_COLOR_CLASS.DEFAULT.toString(); - } - public String getButtonSizeCssClass(int id) { return DoubleButtonColumn.BUTTON_SIZE_CLASS.EXTRA_SMALL.toString(); } @@ -215,8 +182,8 @@ protected String getButtonCssClass(int id, List menuItems) { protected String getButtonIconCss(int id, List menuItems) { for (InlineMenuItem menuItem : menuItems) { - if (menuItem.getId() == id) { - return menuItem.getButtonIconCssClass() + " fa-fw"; //temporary size fix, should be moved somewhere... + if (menuItem.getId() == id && menuItem instanceof ButtonInlineMenuItem) { + return ((ButtonInlineMenuItem)menuItem).getButtonIconCssClass() + " fa-fw"; //temporary size fix, should be moved somewhere... } } @@ -234,10 +201,10 @@ public String getButtonTitle(int id, List menuItems) { } protected int getHeaderNumberOfButtons() { - return this.buttonsNumber; + return this.defaultButtonsNumber; } - protected List getHeaderMenuItems() { - return menuItems; - } +// protected List getHeaderMenuItems() { +// return menuItems; +// } } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/input/ExpressionValuePanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/input/ExpressionValuePanel.java index 9c67f91bca2..4de6fde737c 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/input/ExpressionValuePanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/input/ExpressionValuePanel.java @@ -378,48 +378,66 @@ private ObjectReferenceType getShadowRefValue() { private List createAddButtonInlineMenuItems(){ List menuList = new ArrayList<>(); - menuList.add(new InlineMenuItem(createStringResource("ExpressionValuePanel.addValueButtonDefaultTitle"), - new InlineMenuItemAction(){ - private static final long serialVersionUID = 1L; + menuList.add(new InlineMenuItem(createStringResource("ExpressionValuePanel.addValueButtonDefaultTitle")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new InlineMenuItemAction() { + private static final long serialVersionUID = 1L; + + @Override + public void onClick(AjaxRequestTarget target) { + if (getModelObject() == null) { + getModel().setObject(new ExpressionType()); + } + ExpressionUtil.createShadowRefEvaluatorValue(getModelObject(), null, pageBase.getPrismContext()); + target.add(ExpressionValuePanel.this); + } + }; + } + }); + menuList.add(new InlineMenuItem(createStringResource("ExpressionValuePanel.addValueButtonTargetSearchTitle")) { + private static final long serialVersionUID = 1L; @Override - public void onClick(AjaxRequestTarget target) { - if (getModelObject() == null){ - getModel().setObject(new ExpressionType()); - } - ExpressionUtil.createShadowRefEvaluatorValue(getModelObject(), null, pageBase.getPrismContext()); - target.add(ExpressionValuePanel.this); - } - })); - menuList.add(new InlineMenuItem(createStringResource("ExpressionValuePanel.addValueButtonTargetSearchTitle"), - new InlineMenuItemAction(){ + public InlineMenuItemAction getAction() { + return new InlineMenuItemAction() { private static final long serialVersionUID = 1L; - @Override - public void onClick(AjaxRequestTarget target) { - if (getModelObject() == null){ - getModel().setObject(new ExpressionType()); - } - ExpressionType expression = getModelObject(); - expression.getExpressionEvaluator().add(ExpressionUtil.createAssociationTargetSearchElement()); - target.add(ExpressionValuePanel.this); + @Override + public void onClick(AjaxRequestTarget target) { + if (getModelObject() == null) { + getModel().setObject(new ExpressionType()); + } + ExpressionType expression = getModelObject(); + expression.getExpressionEvaluator().add(ExpressionUtil.createAssociationTargetSearchElement()); + target.add(ExpressionValuePanel.this); + } + }; } - })); - menuList.add(new InlineMenuItem(createStringResource("ExpressionValuePanel.addLiteralValueButton"), - new InlineMenuItemAction(){ - private static final long serialVersionUID = 1L; + }); + menuList.add(new InlineMenuItem(createStringResource("ExpressionValuePanel.addLiteralValueButton")) { + private static final long serialVersionUID = 1L; @Override - public void onClick(AjaxRequestTarget target) { - if (getModelObject() == null){ - getModel().setObject(new ExpressionType()); - } - ExpressionUtil.updateLiteralExpressionValue(getModelObject(), Arrays.asList(""), pageBase.getPrismContext()); - target.add(ExpressionValuePanel.this); + public InlineMenuItemAction getAction() { + return new InlineMenuItemAction() { + private static final long serialVersionUID = 1L; + @Override + public void onClick(AjaxRequestTarget target) { + if (getModelObject() == null) { + getModel().setObject(new ExpressionType()); + } + ExpressionUtil.updateLiteralExpressionValue(getModelObject(), Arrays.asList(""), pageBase.getPrismContext()); + target.add(ExpressionValuePanel.this); + + } + }; } - })); + }); return menuList; } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/menu/cog/ButtonInlineMenuItem.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/menu/cog/ButtonInlineMenuItem.java new file mode 100644 index 00000000000..f6349e48bce --- /dev/null +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/menu/cog/ButtonInlineMenuItem.java @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2010-2018 Evolveum + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.evolveum.midpoint.web.component.menu.cog; + +import com.evolveum.midpoint.gui.api.GuiStyleConstants; +import org.apache.wicket.model.IModel; + +/** + * Created by honchar + */ +public abstract class ButtonInlineMenuItem extends InlineMenuItem { + + public ButtonInlineMenuItem(IModel labelModel){ + super(labelModel); + } + + public abstract String getButtonIconCssClass(); + + private String getButtonColorCssClass(){ + return GuiStyleConstants.CLASS_BUTTON_TOGGLE_OFF; + } +} diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/menu/cog/InlineMenuItem.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/menu/cog/InlineMenuItem.java index d5e2ec9d4cf..ff2ea4f0b15 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/menu/cog/InlineMenuItem.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/menu/cog/InlineMenuItem.java @@ -16,7 +16,6 @@ package com.evolveum.midpoint.web.component.menu.cog; -import com.evolveum.midpoint.web.component.data.column.DoubleButtonColumn; import org.apache.wicket.model.IModel; import java.io.Serializable; @@ -27,118 +26,30 @@ * * @author lazyman */ -public class InlineMenuItem implements Serializable { +public abstract class InlineMenuItem implements Serializable { private IModel label; private IModel enabled; private IModel visible; - private InlineMenuItemAction action; private boolean submit; private int id = -1; - private String buttonIconCssClass; - private String buttonColorCssClass; - private IModel confirmationMessageModel = null; private boolean showConfirmationDialog = false; - public static enum FOCUS_LIST_INLINE_MENU_ITEM_ID { - ENABLE(0), DISABLE(1), RECONCILE(2), - UNLOCK(3), DELETE(4), MERGE(5), - HEADER_ENABLE(0), HEADER_RECONCILE(1), - HEADER_DISABLE(2); - - private int menuItemId = -1; - - FOCUS_LIST_INLINE_MENU_ITEM_ID(final int id){menuItemId = id;} - - public int getMenuItemId(){ - return menuItemId; - } - public String toString(){return Integer.toString(menuItemId);} - } - public static enum RESOURCE_INLINE_MENU_ITEM_ID { - TEST_CONNECTION(0), - HEADER_TEST_CONNECTION(1), - EDIT_XML(1), HEADER_DELETE(0), DELETE_RESOURCE(2), - DELETE_SYNC_TOKEN(3), EDIT_USING_WIZARD(4); - - private int menuItemId = -1; - - RESOURCE_INLINE_MENU_ITEM_ID(final int id){menuItemId = id;} - - public int getMenuItemId(){ - return menuItemId; - } - public String toString(){return Integer.toString(menuItemId);} - } - public static enum TASKS_INLINE_MENU_ITEM_ID { - SUSPEND(0), RESUME(1), RUN_NOW(2), DELETE(3), DELETE_CLOSED(4), - NODE_STOP_SCHEDULER(1), NODE_STOP_SCHEDULER_TASK(2), NODE_START(0), NODE_DELETE(3); - - private int menuItemId = -1; - - TASKS_INLINE_MENU_ITEM_ID(final int id){menuItemId = id;} - - public int getMenuItemId(){ - return menuItemId; - } - public String toString(){return Integer.toString(menuItemId);} - } - - public InlineMenuItem() { - this(null, null); - } - public InlineMenuItem(IModel label) { - this(label, null); - } - - public InlineMenuItem(IModel label, InlineMenuItemAction action) { - this(label, false, action); - } - - public InlineMenuItem(IModel label, boolean submit, InlineMenuItemAction action) { - this(label, null, null, submit, action, -1, "", ""); - } - - public InlineMenuItem(IModel label, boolean submit, InlineMenuItemAction action, int id) { - this(label, null, null, submit, action, id, "", DoubleButtonColumn.BUTTON_COLOR_CLASS.DEFAULT.toString()); - } - - public InlineMenuItem(IModel label, boolean submit, InlineMenuItemAction action, int id, - String buttonIconCssClass) { - this(label, null, null, submit, action, id, buttonIconCssClass, DoubleButtonColumn.BUTTON_COLOR_CLASS.DEFAULT.toString()); - } - - public InlineMenuItem(IModel label, boolean submit, InlineMenuItemAction action, int id, - String buttonIconCssClass, String buttonColorCssClass) { - this(label, null, null, submit, action, id, buttonIconCssClass, buttonColorCssClass); - } - - public InlineMenuItem(IModel label, IModel enabled, IModel visible, - InlineMenuItemAction action) { - this(label, enabled, visible, false, action, -1, "", ""); - } - - public InlineMenuItem(IModel label, IModel enabled, IModel visible, boolean submit, - InlineMenuItemAction action) { - this(label, enabled, visible, submit, action, -1, "", ""); - } - - public InlineMenuItem(IModel label, IModel enabled, IModel visible, boolean submit, - InlineMenuItemAction action, int id, String buttonIconCssClass, String buttonColorCssClass) { this.label = label; - this.enabled = enabled; - this.visible = visible; - this.action = action; - this.submit = submit; - this.id = id; - this.buttonIconCssClass = buttonIconCssClass; - this.buttonColorCssClass = buttonColorCssClass; } - public InlineMenuItemAction getAction() { - return action; - } +// +// public InlineMenuItem(IModel label, IModel enabled, IModel visible, boolean submit, +// InlineMenuItemAction action, int id, String buttonIconCssClass, String buttonColorCssClass) { +// this.label = label; +// this.enabled = enabled; +// this.visible = visible; +// this.submit = submit; +// this.id = id; +// } + + public abstract InlineMenuItemAction getAction(); public IModel getEnabled() { return enabled; @@ -164,11 +75,19 @@ public void setVisible(IModel visible) { } public boolean isDivider() { - return label == null && action == null; + return false; + //TODO fix after menu items refactoring +// return label == null && action == null; } public boolean isMenuHeader() { - return label != null && action == null; + return true; + //TODO fix after menu items refactoring +// return label != null && action == null; + } + + protected boolean isHeaderMenuItem(){ + return true; } public int getId() { @@ -179,32 +98,12 @@ public void setId(int id) { this.id = id; } - public String getButtonIconCssClass() { - return buttonIconCssClass; - } - - public void setButtonIconCssClass(String buttonIconCssClass) { - this.buttonIconCssClass = buttonIconCssClass; - } - - public String getButtonColorCssClass() { - return buttonColorCssClass; - } - - public void setButtonColorCssClass(String buttonColorCssClass) { - this.buttonColorCssClass = buttonColorCssClass; - } - public IModel getConfirmationMessageModel() { - return confirmationMessageModel; - } - - public void setConfirmationMessageModel(IModel confirmationMessageModel) { - this.confirmationMessageModel = confirmationMessageModel; + return null; } - public boolean isShowConfirmationDialog() { - return showConfirmationDialog; + public boolean showConfirmationDialog() { + return true; } public void setShowConfirmationDialog(boolean showConfirmationDialog) { diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/menu/cog/MenuLinkPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/menu/cog/MenuLinkPanel.java index b9e7c05e116..27329c36a3f 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/menu/cog/MenuLinkPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/menu/cog/MenuLinkPanel.java @@ -22,7 +22,6 @@ import org.apache.wicket.ajax.attributes.AjaxRequestAttributes; import org.apache.wicket.ajax.markup.html.AjaxLink; import org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink; -import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.form.Form; import org.apache.wicket.markup.html.link.AbstractLink; @@ -104,7 +103,7 @@ public boolean isVisible() { protected void onSubmit(AjaxRequestTarget target, Form form, InlineMenuItemAction action, IModel item) { if (action != null) { - if (item.getObject().isShowConfirmationDialog() && item.getObject().getConfirmationMessageModel() != null) { + if (item.getObject().showConfirmationDialog() && item.getObject().getConfirmationMessageModel() != null) { showConfirmationPopup(item.getObject(), target); } else { action.onSubmit(target, form); @@ -120,7 +119,7 @@ protected void onError(AjaxRequestTarget target, Form form, InlineMenuItemAct protected void onClick(AjaxRequestTarget target, InlineMenuItemAction action, IModel item) { if (action != null) { - if (item.getObject().isShowConfirmationDialog() && item.getObject().getConfirmationMessageModel() != null) { + if (item.getObject().showConfirmationDialog() && item.getObject().getConfirmationMessageModel() != null) { showConfirmationPopup(item.getObject(), target); } else { action.onClick(target); diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/objectdetails/FocusProjectionsTabPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/objectdetails/FocusProjectionsTabPanel.java index 7926d28acb2..bebb5031191 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/objectdetails/FocusProjectionsTabPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/objectdetails/FocusProjectionsTabPanel.java @@ -25,7 +25,6 @@ import org.apache.wicket.AttributeModifier; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.ajax.markup.html.form.AjaxCheckBox; -import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow; import org.apache.wicket.markup.html.WebMarkupContainer; import org.apache.wicket.markup.html.list.ListItem; import org.apache.wicket.markup.html.list.ListView; @@ -305,8 +304,12 @@ private List createShadowMenu() { PrismReferenceDefinition ref = def.findReferenceDefinition(UserType.F_LINK_REF); InlineMenuItem item; if (ref.canRead() && ref.canAdd()) { - item = new InlineMenuItem(createStringResource("pageAdminFocus.button.addShadow"), - new InlineMenuItemAction() { + item = new InlineMenuItem(createStringResource("pageAdminFocus.button.addShadow")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new InlineMenuItemAction() { private static final long serialVersionUID = 1L; @Override @@ -319,9 +322,10 @@ public void onClick(AjaxRequestTarget target) { pageBase) { private static final long serialVersionUID = 1L; + @Override protected void addPerformed(AjaxRequestTarget target, QName type, - List selected) { + List selected) { FocusProjectionsTabPanel.this.addSelectedAccountPerformed(target, selected); } @@ -330,41 +334,55 @@ protected void addPerformed(AjaxRequestTarget target, QName type, pageBase.showMainPopup(resourceSelectionPanel, target); } - }); + }; + } + }; items.add(item); - items.add(new InlineMenuItem()); +// items.add(new InlineMenuItem()); } PrismPropertyDefinition administrativeStatus = def .findPropertyDefinition(SchemaConstants.PATH_ACTIVATION_ADMINISTRATIVE_STATUS); if (administrativeStatus.canRead() && administrativeStatus.canModify()) { - item = new InlineMenuItem(createStringResource("pageAdminFocus.button.enable"), - new InlineMenuItemAction() { + item = new InlineMenuItem(createStringResource("pageAdminFocus.button.enable")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new InlineMenuItemAction() { private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { updateShadowActivation(target, getSelectedProjections(projectionModel), true); } - }); + }; + } + }; items.add(item); - item = new InlineMenuItem(createStringResource("pageAdminFocus.button.disable"), - new InlineMenuItemAction() { + item = new InlineMenuItem(createStringResource("pageAdminFocus.button.disable")) { + private static final long serialVersionUID = 1L; - /** - * - */ + @Override + public InlineMenuItemAction getAction() { + return new InlineMenuItemAction() { private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { updateShadowActivation(target, getSelectedProjections(projectionModel), false); } - }); + }; + } + }; items.add(item); } if (ref.canRead() && ref.canAdd()) { - item = new InlineMenuItem(createStringResource("pageAdminFocus.button.unlink"), - new InlineMenuItemAction() { + item = new InlineMenuItem(createStringResource("pageAdminFocus.button.unlink")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new InlineMenuItemAction() { private static final long serialVersionUID = 1L; @Override @@ -372,13 +390,19 @@ public void onClick(AjaxRequestTarget target) { unlinkProjectionPerformed(target, projectionModel, getSelectedProjections(projectionModel), ID_SHADOWS); } - }); + }; + } + }; items.add(item); } PrismPropertyDefinition locakoutStatus = def.findPropertyDefinition(SchemaConstants.PATH_ACTIVATION_LOCKOUT_STATUS); if (locakoutStatus.canRead() && locakoutStatus.canModify()) { - item = new InlineMenuItem(createStringResource("pageAdminFocus.button.unlock"), - new InlineMenuItemAction() { + item = new InlineMenuItem(createStringResource("pageAdminFocus.button.unlock")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new InlineMenuItemAction() { private static final long serialVersionUID = 1L; @Override @@ -386,20 +410,28 @@ public void onClick(AjaxRequestTarget target) { unlockShadowPerformed(target, projectionModel, getSelectedProjections(projectionModel)); } - }); + }; + } + }; items.add(item); } if (administrativeStatus.canRead() && administrativeStatus.canModify()) { - items.add(new InlineMenuItem()); - item = new InlineMenuItem(createStringResource("pageAdminFocus.button.delete"), - new InlineMenuItemAction() { +// items.add(new InlineMenuItem()); + item = new InlineMenuItem(createStringResource("pageAdminFocus.button.delete")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new InlineMenuItemAction() { private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { deleteProjectionPerformed(target, projectionModel); } - }); + }; + } + }; items.add(item); } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/objectdetails/UserDelegationsTabPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/objectdetails/UserDelegationsTabPanel.java index cdc605f3c46..92f00389f79 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/objectdetails/UserDelegationsTabPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/objectdetails/UserDelegationsTabPanel.java @@ -104,8 +104,12 @@ protected List createAssignmentMenu() { InlineMenuItem item; if (WebComponentUtil.isAuthorized(AuthorizationConstants.AUTZ_UI_DELEGATE_ACTION_URL)) { - item = new InlineMenuItem(createStringResource("AssignmentTablePanel.menu.addDelegation"), - new InlineMenuItemAction() { + item = new InlineMenuItem(createStringResource("AssignmentTablePanel.menu.addDelegation")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new InlineMenuItemAction() { private static final long serialVersionUID = 1L; @Override @@ -132,19 +136,27 @@ protected void onSelectPerformed(AjaxRequestTarget target, UserType user) { pageBase.showMainPopup(panel, target); } - }); + }; + } + }; items.add(item); } if (WebComponentUtil.isAuthorized(AuthorizationConstants.AUTZ_UI_ADMIN_UNASSIGN_ACTION_URI)) { - item = new InlineMenuItem(createStringResource("AssignmentTablePanel.menu.deleteDelegation"), - new InlineMenuItemAction() { + item = new InlineMenuItem(createStringResource("AssignmentTablePanel.menu.deleteDelegation")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new InlineMenuItemAction() { private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { deleteAssignmentPerformed(target, null); } - }); + }; + } + }; items.add(item); } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/search/SearchPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/search/SearchPanel.java index b9ad52ea867..c5a37daa771 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/search/SearchPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/search/SearchPanel.java @@ -60,7 +60,6 @@ import javax.xml.namespace.QName; -import java.io.Serializable; import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -263,31 +262,43 @@ public boolean isEnabled() { List searchItems = new ArrayList<>(); InlineMenuItem searchItem = new InlineMenuItem( - createStringResource("SearchPanel.search"), - new InlineMenuItemAction() { - - private static final long serialVersionUID = 1L; - - @Override - public void onClick(AjaxRequestTarget target) { - PrismContext ctx = getPageBase().getPrismContext(); - if (getModelObject().isAdvancedQueryValid(ctx)) { - searchPerformed(target); - } - } - }); + createStringResource("SearchPanel.search")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new InlineMenuItemAction() { + + private static final long serialVersionUID = 1L; + + @Override + public void onClick(AjaxRequestTarget target) { + PrismContext ctx = getPageBase().getPrismContext(); + if (getModelObject().isAdvancedQueryValid(ctx)) { + searchPerformed(target); + } + } + }; + } + }; searchItems.add(searchItem); - searchItem = new InlineMenuItem(createStringResource("SearchPanel.debug"), - new InlineMenuItemAction() { - - private static final long serialVersionUID = 1L; - - @Override - public void onClick(AjaxRequestTarget target) { - debugPerformed(); - } - }); + searchItem = new InlineMenuItem(createStringResource("SearchPanel.debug")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new InlineMenuItemAction() { + + private static final long serialVersionUID = 1L; + + @Override + public void onClick(AjaxRequestTarget target) { + debugPerformed(); + } + }; + } + }; searchItems.add(searchItem); ListView li = new ListView(ID_MENU_ITEM, Model.ofList(searchItems)) { diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/util/FocusListInlineMenuHelper.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/util/FocusListInlineMenuHelper.java index fc702c7f1c2..2f6f99abf31 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/util/FocusListInlineMenuHelper.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/util/FocusListInlineMenuHelper.java @@ -29,13 +29,13 @@ import com.evolveum.midpoint.util.logging.Trace; import com.evolveum.midpoint.util.logging.TraceManager; import com.evolveum.midpoint.web.component.data.column.ColumnMenuAction; -import com.evolveum.midpoint.web.component.data.column.DoubleButtonColumn; +import com.evolveum.midpoint.web.component.menu.cog.ButtonInlineMenuItem; import com.evolveum.midpoint.web.component.menu.cog.InlineMenuItem; +import com.evolveum.midpoint.web.component.menu.cog.InlineMenuItemAction; import com.evolveum.midpoint.xml.ns._public.common.common_3.FocusType; import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectType; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.model.IModel; -import org.apache.wicket.model.Model; import org.jetbrains.annotations.NotNull; import java.io.Serializable; @@ -80,29 +80,28 @@ public FocusListInlineMenuHelper(@NotNull Class objectClass, @NotNull PageBas public List createRowActions(boolean isHeader) { List menu = new ArrayList<>(); - menu.add(new InlineMenuItem(parentPage.createStringResource("FocusListInlineMenuHelper.menu.enable"), - new Model<>(false), new Model<>(false), false, - new ColumnMenuAction>() { + menu.add(new ButtonInlineMenuItem(parentPage.createStringResource("FocusListInlineMenuHelper.menu.enable")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new ColumnMenuAction>() { @Override public void onClick(AjaxRequestTarget target) { - if (getRowModel() == null){ + if (getRowModel() == null) { updateActivationPerformed(target, true, null); } else { SelectableBean rowDto = getRowModel().getObject(); updateActivationPerformed(target, true, rowDto.getValue()); } } - }, isHeader ? InlineMenuItem.FOCUS_LIST_INLINE_MENU_ITEM_ID.HEADER_ENABLE.getMenuItemId() - : InlineMenuItem.FOCUS_LIST_INLINE_MENU_ITEM_ID.ENABLE.getMenuItemId(), - GuiStyleConstants.CLASS_OBJECT_USER_ICON, - DoubleButtonColumn.BUTTON_COLOR_CLASS.SUCCESS.toString()){ - - private static final long serialVersionUID = 1L; + }; + } @Override - public boolean isShowConfirmationDialog() { - return FocusListInlineMenuHelper.this.isShowConfirmationDialog((ColumnMenuAction) getAction()); + public String getButtonIconCssClass(){ + return GuiStyleConstants.CLASS_OBJECT_USER_ICON; } @Override @@ -113,11 +112,12 @@ public IModel getConfirmationMessageModel(){ }); - menu.add(new InlineMenuItem(parentPage.createStringResource("FocusListInlineMenuHelper.menu.disable"), - isHeader ? new Model<>(true) : new Model<>(false), - isHeader ? new Model<>(true) : new Model<>(false), - false, - new ColumnMenuAction>() { + menu.add(new InlineMenuItem(parentPage.createStringResource("FocusListInlineMenuHelper.menu.disable")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new ColumnMenuAction>() { @Override public void onClick(AjaxRequestTarget target) { @@ -128,16 +128,7 @@ public void onClick(AjaxRequestTarget target) { updateActivationPerformed(target, false, rowDto.getValue()); } } - }, isHeader ? InlineMenuItem.FOCUS_LIST_INLINE_MENU_ITEM_ID.HEADER_DISABLE.getMenuItemId() - : InlineMenuItem.FOCUS_LIST_INLINE_MENU_ITEM_ID.DISABLE.getMenuItemId(), - GuiStyleConstants.CLASS_OBJECT_USER_ICON, - DoubleButtonColumn.BUTTON_COLOR_CLASS.DANGER.toString()){ - - private static final long serialVersionUID = 1L; - - @Override - public boolean isShowConfirmationDialog() { - return FocusListInlineMenuHelper.this.isShowConfirmationDialog((ColumnMenuAction) getAction()); + }; } @Override @@ -145,10 +136,15 @@ public IModel getConfirmationMessageModel(){ String actionName = parentPage.createStringResource("pageUsers.message.disableAction").getString(); return FocusListInlineMenuHelper.this.getConfirmationMessageModel((ColumnMenuAction) getAction(), actionName); } + }); - menu.add(new InlineMenuItem(parentPage.createStringResource("FocusListInlineMenuHelper.menu.reconcile"), - new Model<>(false), new Model<>(false), false, - new ColumnMenuAction>() { + + menu.add(new ButtonInlineMenuItem(parentPage.createStringResource("FocusListInlineMenuHelper.menu.reconcile")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new ColumnMenuAction>() { @Override public void onClick(AjaxRequestTarget target) { @@ -159,16 +155,12 @@ public void onClick(AjaxRequestTarget target) { reconcilePerformed(target, rowDto.getValue()); } } - }, isHeader ? InlineMenuItem.FOCUS_LIST_INLINE_MENU_ITEM_ID.HEADER_RECONCILE.getMenuItemId() - : InlineMenuItem.FOCUS_LIST_INLINE_MENU_ITEM_ID.RECONCILE.getMenuItemId(), - GuiStyleConstants.CLASS_RECONCILE_MENU_ITEM, - DoubleButtonColumn.BUTTON_COLOR_CLASS.INFO.toString()){ - - private static final long serialVersionUID = 1L; + }; + } @Override - public boolean isShowConfirmationDialog() { - return FocusListInlineMenuHelper.this.isShowConfirmationDialog((ColumnMenuAction) getAction()); + public String getButtonIconCssClass(){ + return GuiStyleConstants.CLASS_RECONCILE_MENU_ITEM; } @Override @@ -176,29 +168,26 @@ public IModel getConfirmationMessageModel(){ String actionName = parentPage.createStringResource("pageUsers.message.reconcileAction").getString(); return FocusListInlineMenuHelper.this.getConfirmationMessageModel((ColumnMenuAction) getAction(), actionName); } - }); + }); + menu.add(new InlineMenuItem(parentPage.createStringResource("FocusListInlineMenuHelper.menu.delete")) { + private static final long serialVersionUID = 1L; - menu.add(new InlineMenuItem(parentPage.createStringResource("FocusListInlineMenuHelper.menu.delete"), - new ColumnMenuAction>() { + @Override + public InlineMenuItemAction getAction() { + return new ColumnMenuAction>() { @Override public void onClick(AjaxRequestTarget target) { - if (getRowModel() == null){ + if (getRowModel() == null) { deleteConfirmedPerformed(target, null); } else { SelectableBean rowDto = getRowModel().getObject(); deleteConfirmedPerformed(target, rowDto.getValue()); } } - }){ - - private static final long serialVersionUID = 1L; - - @Override - public boolean isShowConfirmationDialog() { - return FocusListInlineMenuHelper.this.isShowConfirmationDialog((ColumnMenuAction) getAction()); + }; } @Override @@ -206,7 +195,6 @@ public IModel getConfirmationMessageModel(){ String actionName = parentPage.createStringResource("pageUsers.message.deleteAction").getString(); return FocusListInlineMenuHelper.this.getConfirmationMessageModel((ColumnMenuAction) getAction(), actionName); } - }); return menu; } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/cases/PageCases.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/cases/PageCases.java index 0031729f6f0..2c454d60692 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/cases/PageCases.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/cases/PageCases.java @@ -88,10 +88,6 @@ protected List createInlineMenu() { return new ArrayList<>(); } - @Override - protected IColumn, String> createActionsColumn() { - return null; - } }; casePanel.setOutputMarkupId(true); mainForm.add(casePanel); diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/certification/PageCertCampaigns.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/certification/PageCertCampaigns.java index ee56154ccf8..bf5de6756e8 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/certification/PageCertCampaigns.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/certification/PageCertCampaigns.java @@ -45,6 +45,7 @@ import com.evolveum.midpoint.web.component.dialog.ConfirmationPanel; import com.evolveum.midpoint.web.component.dialog.Popupable; import com.evolveum.midpoint.web.component.menu.cog.InlineMenuItem; +import com.evolveum.midpoint.web.component.menu.cog.InlineMenuItemAction; import com.evolveum.midpoint.web.component.util.Selectable; import com.evolveum.midpoint.web.page.admin.certification.dto.CertCampaignListItemDto; import com.evolveum.midpoint.web.page.admin.certification.dto.CertCampaignListItemDtoProvider; @@ -61,7 +62,6 @@ import org.apache.wicket.MarkupContainer; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior; -import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow; import org.apache.wicket.extensions.markup.html.repeater.data.table.DataTable; import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn; import org.apache.wicket.extensions.markup.html.repeater.data.table.PropertyColumn; @@ -495,47 +495,87 @@ public void clickPerformed(AjaxRequestTarget target, IModel createInlineMenu() { List items = new ArrayList<>(); - items.add(new InlineMenuItem(createStringResource("PageCertCampaigns.menu.startSelected"), false, - new HeaderMenuAction(this) { + items.add(new InlineMenuItem(createStringResource("PageCertCampaigns.menu.startSelected")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new HeaderMenuAction(PageCertCampaigns.this) { + private static final long serialVersionUID = 1L; + @Override public void onClick(AjaxRequestTarget target) { startSelectedCampaignsPerformed(target); } - })); - items.add(new InlineMenuItem(createStringResource("PageCertCampaigns.menu.closeSelected"), false, - new HeaderMenuAction(this) { + }; + } + }); + items.add(new InlineMenuItem(createStringResource("PageCertCampaigns.menu.closeSelected")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new HeaderMenuAction(PageCertCampaigns.this) { + private static final long serialVersionUID = 1L; + @Override public void onClick(AjaxRequestTarget target) { closeSelectedCampaignsConfirmation(target); } - })); - items.add(new InlineMenuItem(createStringResource("PageCertCampaigns.menu.reiterateSelected"), false, - new HeaderMenuAction(this) { + }; + } + }); + items.add(new InlineMenuItem(createStringResource("PageCertCampaigns.menu.reiterateSelected")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new HeaderMenuAction(PageCertCampaigns.this) { + private static final long serialVersionUID = 1L; + @Override public void onClick(AjaxRequestTarget target) { reiterateSelectedCampaignsConfirmation(target); } - })); - items.add(new InlineMenuItem(createStringResource("PageCertCampaigns.menu.deleteSelected"), false, - new HeaderMenuAction(this) { + }; + } + }); + items.add(new InlineMenuItem(createStringResource("PageCertCampaigns.menu.deleteSelected")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new HeaderMenuAction(PageCertCampaigns.this) { + private static final long serialVersionUID = 1L; + @Override public void onClick(AjaxRequestTarget target) { deleteSelectedCampaignsConfirmation(target); } - })); + }; + } + }); return items; } private void createInlineMenuForItem(final CertCampaignListItemDto dto) { dto.getMenuItems().clear(); - dto.getMenuItems().add(new InlineMenuItem(createStringResource("PageCertCampaigns.menu.close"), - new ColumnMenuAction() { + dto.getMenuItems().add(new InlineMenuItem(createStringResource("PageCertCampaigns.menu.close")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new ColumnMenuAction() { + private static final long serialVersionUID = 1L; + @Override public void onClick(AjaxRequestTarget target) { closeCampaignConfirmation(target, dto); } - }) { + }; + } + @Override public IModel getVisible() { return new AbstractReadOnlyModel() { @@ -546,26 +586,45 @@ public Boolean getObject() { }; } }); - dto.getMenuItems().add(new InlineMenuItem(createStringResource("PageCertCampaigns.menu.reiterate"), - new ColumnMenuAction() { + + dto.getMenuItems().add(new InlineMenuItem(createStringResource("PageCertCampaigns.menu.reiterate")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new ColumnMenuAction() { + private static final long serialVersionUID = 1L; + @Override public void onClick(AjaxRequestTarget target) { reiterateCampaignConfirmation(target, dto); } - }) { + }; + } + @Override public IModel getVisible() { return new ReadOnlyModel<>(dto::isReiterable); } }); - dto.getMenuItems().add(new InlineMenuItem(createStringResource("PageCertCampaigns.menu.delete"), - new ColumnMenuAction() { + dto.getMenuItems().add(new InlineMenuItem(createStringResource("PageCertCampaigns.menu.delete")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new ColumnMenuAction() { + private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { deleteCampaignConfirmation(target, dto); } - })); + }; + } + + + }); + } private Table getCampaignsTable() { diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/certification/PageCertDecisions.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/certification/PageCertDecisions.java index de22174c658..4be1e0dc0c8 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/certification/PageCertDecisions.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/certification/PageCertDecisions.java @@ -35,6 +35,7 @@ import com.evolveum.midpoint.web.component.data.column.*; import com.evolveum.midpoint.web.component.data.column.DoubleButtonColumn.BUTTON_COLOR_CLASS; import com.evolveum.midpoint.web.component.menu.cog.InlineMenuItem; +import com.evolveum.midpoint.web.component.menu.cog.InlineMenuItemAction; import com.evolveum.midpoint.web.component.util.EnableBehaviour; import com.evolveum.midpoint.web.component.util.VisibleBehaviour; import com.evolveum.midpoint.web.page.admin.certification.dto.*; @@ -388,13 +389,21 @@ private List createInlineMenu(AvailableResponses availableRespon } private InlineMenuItem createMenu(String titleKey, final AccessCertificationResponseType response) { - return new InlineMenuItem(createStringResource(titleKey), false, - new HeaderMenuAction(this) { + return new InlineMenuItem(createStringResource(titleKey)) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new HeaderMenuAction(PageCertDecisions.this) { + private static final long serialVersionUID = 1L; + @Override public void onClick(AjaxRequestTarget target) { recordActionOnSelected(response, target); } - }); + }; + } + }; } private String getDecisionButtonColor(IModel model, AccessCertificationResponseType response) { diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/configuration/PageDebugList.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/configuration/PageDebugList.java index bc2d451cf4e..3419aaa882d 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/configuration/PageDebugList.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/configuration/PageDebugList.java @@ -25,6 +25,7 @@ import com.evolveum.midpoint.prism.PrismPropertyDefinitionImpl; import com.evolveum.midpoint.prism.query.builder.QueryBuilder; import com.evolveum.midpoint.web.component.dialog.*; +import com.evolveum.midpoint.web.component.menu.cog.InlineMenuItemAction; import com.evolveum.midpoint.web.component.search.Search; import com.evolveum.midpoint.web.component.search.SearchFactory; import com.evolveum.midpoint.web.component.search.SearchPanel; @@ -376,100 +377,157 @@ public void populateItem(Item> cellItem, String c private List initInlineMenu() { List headerMenuItems = new ArrayList<>(); - headerMenuItems.add(new InlineMenuItem(createStringResource("pageDebugList.menu.exportSelected"), - true, new HeaderMenuAction(this) { + headerMenuItems.add(new InlineMenuItem(createStringResource("pageDebugList.menu.exportSelected")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new HeaderMenuAction(PageDebugList.this) { + private static final long serialVersionUID = 1L; @Override public void onSubmit(AjaxRequestTarget target, Form form) { exportSelected(target, null); } - })); + }; + } + }); headerMenuItems - .add(new InlineMenuItem(createStringResource("pageDebugList.menu.exportAllSelectedType"), - true, new HeaderMenuAction(this) { + .add(new InlineMenuItem(createStringResource("pageDebugList.menu.exportAllSelectedType")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new HeaderMenuAction(PageDebugList.this) { + private static final long serialVersionUID = 1L; @Override public void onSubmit(AjaxRequestTarget target, Form form) { exportAllType(target); } - })); + }; + } + }); headerMenuItems - .add(new InlineMenuItem(createStringResource("pageDebugList.menu.exportShadowsOnResource"), - new Model(true), new AbstractReadOnlyModel() { + .add(new InlineMenuItem(createStringResource("pageDebugList.menu.exportShadowsOnResource")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new HeaderMenuAction(PageDebugList.this) { + private static final long serialVersionUID = 1L; - @Override - public Boolean getObject() { - DebugSearchDto dto = searchModel.getObject(); - return ObjectTypes.SHADOW.equals(dto.getType()); - } + @Override + public void onClick(AjaxRequestTarget target) { + exportAllShadowsOnResource(target); + } + }; + } - }, false, new HeaderMenuAction(this) { + //TODO fix visible behavior +// @Override +// public boolean isVisible() { +// DebugSearchDto dto = searchModel.getObject(); +// return ObjectTypes.SHADOW.equals(dto.getType()); +// } - @Override - public void onClick(AjaxRequestTarget target) { - exportAllShadowsOnResource(target); - } - })); + }); - headerMenuItems.add(new InlineMenuItem(createStringResource("pageDebugList.menu.exportAll"), true, - new HeaderMenuAction(this) { + headerMenuItems.add(new InlineMenuItem(createStringResource("pageDebugList.menu.exportAll")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new HeaderMenuAction(PageDebugList.this) { + private static final long serialVersionUID = 1L; @Override public void onSubmit(AjaxRequestTarget target, Form form) { exportAll(target); } - })); + }; + } + }); - headerMenuItems.add(new InlineMenuItem()); +// headerMenuItems.add(new InlineMenuItem()); + + headerMenuItems.add(new InlineMenuItem(createStringResource("pageDebugList.menu.deleteSelected")) { + private static final long serialVersionUID = 1L; - headerMenuItems.add(new InlineMenuItem(createStringResource("pageDebugList.menu.deleteSelected"), - true, new HeaderMenuAction(this) { + @Override + public InlineMenuItemAction getAction() { + return new HeaderMenuAction(PageDebugList.this) { + private static final long serialVersionUID = 1L; @Override public void onSubmit(AjaxRequestTarget target, Form form) { deleteSelected(target, null); } - })); + }; + } + }); + + headerMenuItems.add(new InlineMenuItem(createStringResource("pageDebugList.menu.deleteAllType")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new HeaderMenuAction(PageDebugList.this) { + private static final long serialVersionUID = 1L; - headerMenuItems.add(new InlineMenuItem(createStringResource("pageDebugList.menu.deleteAllType"), true, - new HeaderMenuAction(this) { @Override public void onSubmit(AjaxRequestTarget target, Form form) { deleteAllType(target); } - })); + }; + } + }); headerMenuItems - .add(new InlineMenuItem(createStringResource("pageDebugList.menu.deleteShadowsOnResource"), - new Model(true), new AbstractReadOnlyModel() { - - @Override - public Boolean getObject() { - DebugSearchDto dto = searchModel.getObject(); - return ObjectTypes.SHADOW.equals(dto.getType()); - } + .add(new InlineMenuItem(createStringResource("pageDebugList.menu.deleteShadowsOnResource")) { + private static final long serialVersionUID = 1L; - }, false, new HeaderMenuAction(this) { + @Override + public InlineMenuItemAction getAction() { + return new HeaderMenuAction(PageDebugList.this) { + private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { deleteAllShadowsOnResource(target); } - })); + }; + } - headerMenuItems.add(new InlineMenuItem()); +// //TODO fix visible behavior +// @Override +// public Boolean isVisible() { +// DebugSearchDto dto = searchModel.getObject(); +// return ObjectTypes.SHADOW.equals(dto.getType()); +// } + }); + +// headerMenuItems.add(new InlineMenuItem()); + + headerMenuItems.add(new InlineMenuItem(createStringResource("pageDebugList.menu.deleteAllIdentities")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new HeaderMenuAction(PageDebugList.this) { + private static final long serialVersionUID = 1L; - headerMenuItems.add(new InlineMenuItem(createStringResource("pageDebugList.menu.deleteAllIdentities"), - true, new HeaderMenuAction(this) { @Override public void onSubmit(AjaxRequestTarget target, Form form) { deleteAllIdentities(target); } - })); + }; + } + }); return headerMenuItems; } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/orgs/OrgTreePanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/orgs/OrgTreePanel.java index 135cb724aab..9a33a44f406 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/orgs/OrgTreePanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/orgs/OrgTreePanel.java @@ -61,7 +61,6 @@ import com.evolveum.midpoint.web.session.SessionStorage; import com.evolveum.midpoint.xml.ns._public.common.common_3.AdminGuiConfigurationType; import com.evolveum.midpoint.xml.ns._public.common.common_3.OrgType; -import org.apache.wicket.model.PropertyModel; public class OrgTreePanel extends AbstractTreeTablePanel { private static final long serialVersionUID = 1L; @@ -351,27 +350,39 @@ private List createTreeMenuInternal(AdminGuiConfigurationType ad List items = new ArrayList<>(); if (AdminGuiConfigTypeUtil.isFeatureVisible(adminGuiConfig, GuiFeature.ORGTREE_COLLAPSE_ALL.getUri())) { - InlineMenuItem item = new InlineMenuItem(createStringResource("TreeTablePanel.collapseAll"), - new InlineMenuItemAction() { + InlineMenuItem item = new InlineMenuItem(createStringResource("TreeTablePanel.collapseAll")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new InlineMenuItemAction() { private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { collapseAllPerformed(target); } - }); + }; + } + }; items.add(item); } if (AdminGuiConfigTypeUtil.isFeatureVisible(adminGuiConfig, GuiFeature.ORGTREE_EXPAND_ALL.getUri())) { - InlineMenuItem item = new InlineMenuItem(createStringResource("TreeTablePanel.expandAll"), - new InlineMenuItemAction() { + InlineMenuItem item = new InlineMenuItem(createStringResource("TreeTablePanel.expandAll")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new InlineMenuItemAction() { private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { expandAllPerformed(target); } - }); + }; + } + }; items.add(item); } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/reports/PageCreatedReports.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/reports/PageCreatedReports.java index dc39806f2b9..be3b0a781d7 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/reports/PageCreatedReports.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/reports/PageCreatedReports.java @@ -29,6 +29,9 @@ import javax.xml.namespace.QName; +import com.evolveum.midpoint.web.component.data.column.ColumnMenuAction; +import com.evolveum.midpoint.web.component.menu.cog.InlineMenuItemAction; +import com.evolveum.midpoint.xml.ns._public.common.common_3.*; import org.apache.commons.lang.StringUtils; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.ajax.form.OnChangeAjaxBehavior; @@ -80,10 +83,6 @@ import com.evolveum.midpoint.web.page.admin.reports.dto.ReportDeleteDialogDto; import com.evolveum.midpoint.web.session.UserProfileStorage; import com.evolveum.midpoint.web.util.OnePageParameterEncoder; -import com.evolveum.midpoint.xml.ns._public.common.common_3.ExportType; -import com.evolveum.midpoint.xml.ns._public.common.common_3.MetadataType; -import com.evolveum.midpoint.xml.ns._public.common.common_3.ReportOutputType; -import com.evolveum.midpoint.xml.ns._public.common.common_3.ReportType; /** * @author lazyman @@ -344,29 +343,37 @@ protected void downloadPerformed(AjaxRequestTarget target) { private List initInlineMenu() { List headerMenuItems = new ArrayList<>(); - headerMenuItems.add(new InlineMenuItem(createStringResource("pageCreatedReports.inlineMenu.deleteAll"), true, - new HeaderMenuAction(this) { + headerMenuItems.add(new InlineMenuItem(createStringResource("pageCreatedReports.inlineMenu.deleteAll")) { + private static final long serialVersionUID = 1L; - private static final long serialVersionUID = 1L; + @Override + public InlineMenuItemAction getAction() { + return new HeaderMenuAction(PageCreatedReports.this) { + private static final long serialVersionUID = 1L; @Override public void onSubmit(AjaxRequestTarget target, Form form) { deleteAllPerformed(target, ReportDeleteDialogDto.Operation.DELETE_ALL); } - } - )); + }; + } + }); - headerMenuItems.add(new InlineMenuItem(createStringResource("pageCreatedReports.inlineMenu.deleteSelected"), true, - new HeaderMenuAction(this) { + headerMenuItems.add(new InlineMenuItem(createStringResource("pageCreatedReports.inlineMenu.deleteSelected")) { + private static final long serialVersionUID = 1L; - private static final long serialVersionUID = 1L; + @Override + public InlineMenuItemAction getAction() { + return new HeaderMenuAction(PageCreatedReports.this) { + private static final long serialVersionUID = 1L; @Override public void onSubmit(AjaxRequestTarget target, Form form) { deleteSelectedPerformed(target, ReportDeleteDialogDto.Operation.DELETE_SELECTED, null); } - } - )); + }; + } + }); return headerMenuItems; } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/reports/PageReports.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/reports/PageReports.java index eff151c0c3a..3c0006cf654 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/reports/PageReports.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/reports/PageReports.java @@ -30,9 +30,9 @@ import com.evolveum.midpoint.web.application.Url; import com.evolveum.midpoint.web.component.data.Table; import com.evolveum.midpoint.web.component.data.column.ColumnMenuAction; -import com.evolveum.midpoint.web.component.data.column.DoubleButtonColumn; -import com.evolveum.midpoint.web.component.data.column.InlineMenuButtonColumn; +import com.evolveum.midpoint.web.component.menu.cog.ButtonInlineMenuItem; import com.evolveum.midpoint.web.component.menu.cog.InlineMenuItem; +import com.evolveum.midpoint.web.component.menu.cog.InlineMenuItemAction; import com.evolveum.midpoint.web.component.util.SelectableBean; import com.evolveum.midpoint.web.page.admin.configuration.PageAdminConfiguration; import com.evolveum.midpoint.web.page.admin.reports.component.RunReportPopupPanel; @@ -45,7 +45,6 @@ import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn; import org.apache.wicket.extensions.markup.html.repeater.data.table.PropertyColumn; import org.apache.wicket.markup.html.form.Form; -import org.apache.wicket.model.Model; import org.apache.wicket.request.mapper.parameter.PageParameters; import java.util.ArrayList; @@ -109,14 +108,9 @@ protected List, String>> createColumns() { return PageReports.this.initColumns(); } - @Override - protected IColumn, String> createActionsColumn() { - return PageReports.this.createActionsColumn(); - } - @Override protected List createInlineMenu() { - return new ArrayList<>(); + return PageReports.this.createInlineMenu(); } @Override @@ -144,49 +138,50 @@ private void reportDetailsPerformed(AjaxRequestTarget target, String oid) { navigateToNext(PageCreatedReports.class, params); } - private IColumn, String> createActionsColumn(){ - return new InlineMenuButtonColumn>(createInlineMenu(), 2, this){ - @Override - protected List getHeaderMenuItems() { - return new ArrayList<>(); - } - - @Override - protected int getHeaderNumberOfButtons(){ - return 0; - } - }; - } - private List createInlineMenu(){ List menu = new ArrayList<>(); - menu.add(new InlineMenuItem(createStringResource("PageReports.button.run"), - new Model<>(true), new Model<>(true), false, - new ColumnMenuAction>() { + menu.add(new ButtonInlineMenuItem(createStringResource("PageReports.button.run")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new ColumnMenuAction>() { + private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { ReportType report = getRowModel().getObject().getValue(); runReportPerformed(target, report); } - }, 0, - GuiStyleConstants.CLASS_START_MENU_ITEM, - DoubleButtonColumn.BUTTON_COLOR_CLASS.INFO.toString())); + }; + } + + @Override + public String getButtonIconCssClass() { + return GuiStyleConstants.CLASS_START_MENU_ITEM; + } + }); + menu.add(new ButtonInlineMenuItem(createStringResource("PageReports.button.configure")) { + private static final long serialVersionUID = 1L; - menu.add(new InlineMenuItem(createStringResource("PageReports.button.configure"), - new Model<>(true), new Model<>(true), - false, - new ColumnMenuAction>() { + @Override + public InlineMenuItemAction getAction() { + return new ColumnMenuAction>() { + private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { - ReportType reportObject = getRowModel().getObject().getValue(); - configurePerformed(target, reportObject); + ReportType reportObject = getRowModel().getObject().getValue(); + configurePerformed(target, reportObject); } - }, 1, - GuiStyleConstants.CLASS_EDIT_MENU_ITEM, - DoubleButtonColumn.BUTTON_COLOR_CLASS.DEFAULT.toString())); + }; + } + @Override + public String getButtonIconCssClass() { + return GuiStyleConstants.CLASS_EDIT_MENU_ITEM; + } + }); return menu; } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/resources/PageConnectorHosts.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/resources/PageConnectorHosts.java index 5d51cd1edbd..749135d8aab 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/resources/PageConnectorHosts.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/resources/PageConnectorHosts.java @@ -20,6 +20,7 @@ import java.util.List; import com.evolveum.midpoint.web.component.dialog.ConfirmationPanel; +import com.evolveum.midpoint.web.component.menu.cog.InlineMenuItemAction; import com.evolveum.midpoint.web.component.search.*; import org.apache.wicket.Component; import org.apache.wicket.ajax.AjaxRequestTarget; @@ -173,24 +174,36 @@ public void onClick(AjaxRequestTarget target, private List initInlineHostsMenu() { List headerMenuItems = new ArrayList<>(); - headerMenuItems.add(new InlineMenuItem(createStringResource("PageBase.button.delete"), - new HeaderMenuAction(this) { + headerMenuItems.add(new InlineMenuItem(createStringResource("PageBase.button.delete")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new HeaderMenuAction(PageConnectorHosts.this) { private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { deleteHostPerformed(target); } - })); - headerMenuItems.add(new InlineMenuItem(createStringResource("pageResources.button.discoveryRemote"), - new HeaderMenuAction(this) { + }; + } + }); + headerMenuItems.add(new InlineMenuItem(createStringResource("pageResources.button.discoveryRemote")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new HeaderMenuAction(PageConnectorHosts.this) { private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { discoveryRemotePerformed(target); } - })); + }; + } + }); return headerMenuItems; } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/resources/PageResources.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/resources/PageResources.java index e6943ae51e4..7e22e793c66 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/resources/PageResources.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/resources/PageResources.java @@ -22,9 +22,9 @@ import com.evolveum.midpoint.prism.PrismObject; import com.evolveum.midpoint.web.application.Url; -import com.evolveum.midpoint.web.component.data.column.DoubleButtonColumn; -import com.evolveum.midpoint.web.component.data.column.InlineMenuButtonColumn; import com.evolveum.midpoint.web.component.dialog.ConfirmationPanel; +import com.evolveum.midpoint.web.component.menu.cog.ButtonInlineMenuItem; +import com.evolveum.midpoint.web.component.menu.cog.InlineMenuItemAction; import com.evolveum.midpoint.web.component.search.*; import com.evolveum.midpoint.web.session.PageStorage; import com.evolveum.midpoint.web.session.SessionStorage; @@ -37,7 +37,6 @@ import org.apache.wicket.markup.html.form.Form; import org.apache.wicket.model.AbstractReadOnlyModel; import org.apache.wicket.model.IModel; -import org.apache.wicket.model.Model; import org.apache.wicket.request.mapper.parameter.PageParameters; import com.evolveum.midpoint.gui.api.GuiStyleConstants; @@ -175,11 +174,6 @@ protected PrismObject getNewObjectListObject(){ return (new ResourceType()).asPrismObject(); } - @Override - protected IColumn, String> createActionsColumn() { - return PageResources.this.createResourceActionsColumn(); - } - @Override protected void objectDetailsPerformed(AjaxRequestTarget target, ResourceType object) { PageResources.this.resourceDetailsPerformed(target, object.getOid()); @@ -203,76 +197,131 @@ private List createRowMenuItems(boolean isHeader) { List menuItems = new ArrayList<>(); - menuItems.add(new InlineMenuItem(createStringResource("PageResources.inlineMenuItem.test"), - new Model<>(false), new Model<>(false), false, - new ColumnMenuAction>() { + menuItems.add(new ButtonInlineMenuItem(createStringResource("PageResources.inlineMenuItem.test")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new ColumnMenuAction>() { + private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { - SelectableBean rowDto = getRowModel().getObject(); - testResourcePerformed(target, rowDto.getValue()); + SelectableBean rowDto = getRowModel().getObject(); + testResourcePerformed(target, rowDto.getValue()); } - }, isHeader ? InlineMenuItem.RESOURCE_INLINE_MENU_ITEM_ID.HEADER_TEST_CONNECTION.getMenuItemId() - : InlineMenuItem.RESOURCE_INLINE_MENU_ITEM_ID.TEST_CONNECTION.getMenuItemId(), - GuiStyleConstants.CLASS_TEST_CONNECTION_MENU_ITEM, - DoubleButtonColumn.BUTTON_COLOR_CLASS.INFO.toString())); + }; + } - menuItems.add(new InlineMenuItem(createStringResource("PageBase.button.delete"), - new Model<>(true), new Model<>(true), false, - new ColumnMenuAction>() { + @Override + protected boolean isHeaderMenuItem(){ + return false; + } + + @Override + public String getButtonIconCssClass() { + return GuiStyleConstants.CLASS_TEST_CONNECTION_MENU_ITEM; + } + }); + + menuItems.add(new ButtonInlineMenuItem(createStringResource("pageResources.button.editAsXml")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new ColumnMenuAction>() { + private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { - if (getRowModel() == null){ - deleteResourcePerformed(target, null); - } else { - SelectableBean rowDto = getRowModel().getObject(); - deleteResourcePerformed(target, rowDto.getValue()); - } + SelectableBean rowDto = getRowModel().getObject(); + editAsXmlPerformed(rowDto.getValue()); } - }, isHeader ? InlineMenuItem.RESOURCE_INLINE_MENU_ITEM_ID.HEADER_DELETE.getMenuItemId() - : InlineMenuItem.RESOURCE_INLINE_MENU_ITEM_ID.DELETE_RESOURCE.getMenuItemId(), - GuiStyleConstants.CLASS_DELETE_MENU_ITEM, - DoubleButtonColumn.BUTTON_COLOR_CLASS.DANGER.toString())); + }; + } + + @Override + protected boolean isHeaderMenuItem(){ + return false; + } - menuItems.add(new InlineMenuItem(createStringResource("pageResources.inlineMenuItem.deleteSyncToken"), - isHeader ? new Model<>(false) : new Model<>(true), - isHeader ? new Model<>(false) : new Model<>(true), - false, - new ColumnMenuAction>() { + @Override + public String getButtonIconCssClass() { + return GuiStyleConstants.CLASS_EDIT_MENU_ITEM; + } + }); + + menuItems.add(new InlineMenuItem(createStringResource("pageResources.inlineMenuItem.editResource")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new ColumnMenuAction>() { + private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { SelectableBean rowDto = getRowModel().getObject(); - deleteResourceSyncTokenPerformed(target, rowDto.getValue()); + editResourcePerformed(rowDto.getValue()); } + }; + } - })); + @Override + protected boolean isHeaderMenuItem(){ + return false; + } + }); + + menuItems.add(new ButtonInlineMenuItem(createStringResource("PageBase.button.delete")) { + private static final long serialVersionUID = 1L; - menuItems.add(new InlineMenuItem(createStringResource("pageResources.inlineMenuItem.editResource"), - isHeader ? new Model<>(false) : new Model<>(true), - isHeader ? new Model<>(false) : new Model<>(true), - false, - new ColumnMenuAction>() { + @Override + public InlineMenuItemAction getAction() { + return new ColumnMenuAction>() { + private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { - SelectableBean rowDto = getRowModel().getObject(); - editResourcePerformed(rowDto.getValue()); + if (getRowModel() == null) { + deleteResourcePerformed(target, null); + } else { + SelectableBean rowDto = getRowModel().getObject(); + deleteResourcePerformed(target, rowDto.getValue()); + } } - })); - menuItems.add(new InlineMenuItem(createStringResource("pageResources.button.editAsXml"), - new Model<>(false), new Model<>(false), false, - new ColumnMenuAction>() { + }; + } + + @Override + public String getButtonIconCssClass() { + return GuiStyleConstants.CLASS_DELETE_MENU_ITEM; + } + }); + + menuItems.add(new InlineMenuItem(createStringResource("pageResources.inlineMenuItem.deleteSyncToken")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new ColumnMenuAction>() { + private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { SelectableBean rowDto = getRowModel().getObject(); - editAsXmlPerformed(rowDto.getValue()); + deleteResourceSyncTokenPerformed(target, rowDto.getValue()); } - }, InlineMenuItem.RESOURCE_INLINE_MENU_ITEM_ID.EDIT_XML.getMenuItemId(), - GuiStyleConstants.CLASS_EDIT_MENU_ITEM, - DoubleButtonColumn.BUTTON_COLOR_CLASS.INFO.toString())); + + }; + } + + @Override + protected boolean isHeaderMenuItem(){ + return false; + } + + }); return menuItems; } @@ -288,21 +337,7 @@ private List, String>> initResourceColumns( return columns; } - private IColumn, String> createResourceActionsColumn() { - return new InlineMenuButtonColumn>(createRowMenuItems(false), 2, PageResources.this){ - @Override - protected int getHeaderNumberOfButtons() { - return 1; - } - - @Override - protected List getHeaderMenuItems() { - return createRowMenuItems(true); - } - }; - } - - private void resourceDetailsPerformed(AjaxRequestTarget target, String oid) { + private void resourceDetailsPerformed(AjaxRequestTarget target, String oid) { clearSessionStorageForResourcePage(); PageParameters parameters = new PageParameters(); diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/resources/ResourceContentPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/resources/ResourceContentPanel.java index 25b8010c8f4..c587025d358 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/resources/ResourceContentPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/resources/ResourceContentPanel.java @@ -274,11 +274,6 @@ protected PrismObject getNewObjectListObject(){ return (new ShadowType()).asPrismObject(); } - @Override - protected IColumn, String> createActionsColumn(){ - return new InlineMenuHeaderColumn(createHeaderMenuItems()); - } - @Override protected void objectDetailsPerformed(AjaxRequestTarget target, ShadowType object) { shadowDetailsPerformed(target, WebComponentUtil.getName(object), object.getOid()); @@ -399,26 +394,38 @@ private void initButton(String id, String label, String icon, final String categ List items = new ArrayList<>(); InlineMenuItem item = new InlineMenuItem( - getPageBase().createStringResource("ResourceContentResourcePanel.showExisting"), - new InlineMenuItemAction() { + getPageBase().createStringResource("ResourceContentResourcePanel.showExisting")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new InlineMenuItemAction() { private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { runTask(tasks, target); } - }); + }; + } + }; items.add(item); - item = new InlineMenuItem(getPageBase().createStringResource("ResourceContentResourcePanel.newTask"), - new InlineMenuItemAction() { + item = new InlineMenuItem(getPageBase().createStringResource("ResourceContentResourcePanel.newTask")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new InlineMenuItemAction() { private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { newTaskPerformed(category, target); } - }); + }; + } + }; items.add(item); DropdownButtonPanel button = new DropdownButtonPanel(id, @@ -787,63 +794,93 @@ private F loadShadowOwner(String shadowOid) { return null; } + //TODO unify with createRowMenuItems private List createHeaderMenuItems() { List items = new ArrayList<>(); - items.add(new InlineMenuItem(createStringResource("pageContentAccounts.menu.enableAccounts"), true, - new HeaderMenuAction(this) { + items.add(new InlineMenuItem(createStringResource("pageContentAccounts.menu.enableAccounts")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new HeaderMenuAction(ResourceContentPanel.this) { private static final long serialVersionUID = 1L; @Override public void onSubmit(AjaxRequestTarget target, Form form) { updateResourceObjectStatusPerformed(null, target, true); } - })); + }; + } + }); - items.add(new InlineMenuItem(createStringResource("pageContentAccounts.menu.disableAccounts"), true, - new HeaderMenuAction(this) { + items.add(new InlineMenuItem(createStringResource("pageContentAccounts.menu.disableAccounts")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new HeaderMenuAction(ResourceContentPanel.this) { private static final long serialVersionUID = 1L; @Override public void onSubmit(AjaxRequestTarget target, Form form) { updateResourceObjectStatusPerformed(null, target, false); } - })); + }; + } + }); - items.add(new InlineMenuItem(createStringResource("pageContentAccounts.menu.deleteAccounts"), true, - new HeaderMenuAction(this) { + items.add(new InlineMenuItem(createStringResource("pageContentAccounts.menu.deleteAccounts")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new HeaderMenuAction(ResourceContentPanel.this) { private static final long serialVersionUID = 1L; @Override public void onSubmit(AjaxRequestTarget target, Form form) { deleteResourceObjectPerformed(null, target); } - })); + }; + } + }); - items.add(new InlineMenuItem()); +// items.add(new InlineMenuItem()); - items.add(new InlineMenuItem(createStringResource("pageContentAccounts.menu.importAccounts"), true, - new HeaderMenuAction(this) { + items.add(new InlineMenuItem(createStringResource("pageContentAccounts.menu.importAccounts")) { + private static final long serialVersionUID = 1L; + @Override + public InlineMenuItemAction getAction() { + return new HeaderMenuAction(ResourceContentPanel.this) { private static final long serialVersionUID = 1L; @Override public void onSubmit(AjaxRequestTarget target, Form form) { importResourceObject(null, target); } - })); + }; + } + }); - items.add(new InlineMenuItem()); +// items.add(new InlineMenuItem()); - items.add(new InlineMenuItem(createStringResource("pageContentAccounts.menu.removeOwners"), true, - new HeaderMenuAction(this) { + items.add(new InlineMenuItem(createStringResource("pageContentAccounts.menu.removeOwners")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new HeaderMenuAction(ResourceContentPanel.this) { private static final long serialVersionUID = 1L; @Override public void onSubmit(AjaxRequestTarget target, Form form) { changeOwner(null, target, null, Operation.REMOVE); } - })); + }; + } + }); return items; } @@ -852,62 +889,102 @@ public void onSubmit(AjaxRequestTarget target, Form form) { private List createRowMenuItems() { List items = new ArrayList<>(); - items.add(new InlineMenuItem(createStringResource("pageContentAccounts.menu.enableAccount"), true, - new ColumnMenuAction>() { + items.add(new InlineMenuItem(createStringResource("pageContentAccounts.menu.enableAccount")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new ColumnMenuAction>() { + private static final long serialVersionUID = 1L; @Override public void onSubmit(AjaxRequestTarget target, Form form) { SelectableBean shadow = getRowModel().getObject(); updateResourceObjectStatusPerformed(shadow.getValue(), target, true); } - })); + }; + } + }); - items.add(new InlineMenuItem(createStringResource("pageContentAccounts.menu.disableAccount"), true, - new ColumnMenuAction>() { + items.add(new InlineMenuItem(createStringResource("pageContentAccounts.menu.disableAccount")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new ColumnMenuAction>() { + private static final long serialVersionUID = 1L; @Override public void onSubmit(AjaxRequestTarget target, Form form) { SelectableBean shadow = getRowModel().getObject(); updateResourceObjectStatusPerformed(shadow.getValue(), target, false); } - })); + }; + } + }); - items.add(new InlineMenuItem(createStringResource("pageContentAccounts.menu.deleteAccount"), true, - new ColumnMenuAction>() { + items.add(new InlineMenuItem(createStringResource("pageContentAccounts.menu.deleteAccount")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new ColumnMenuAction>() { + private static final long serialVersionUID = 1L; @Override public void onSubmit(AjaxRequestTarget target, Form form) { SelectableBean shadow = getRowModel().getObject(); deleteResourceObjectPerformed(shadow.getValue(), target); } - })); + }; + } + }); - items.add(new InlineMenuItem()); +// items.add(new InlineMenuItem()); - items.add(new InlineMenuItem(createStringResource("pageContentAccounts.menu.importAccount"), true, - new ColumnMenuAction>() { + items.add(new InlineMenuItem(createStringResource("pageContentAccounts.menu.importAccount")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new ColumnMenuAction>() { + private static final long serialVersionUID = 1L; @Override public void onSubmit(AjaxRequestTarget target, Form form) { SelectableBean shadow = getRowModel().getObject(); importResourceObject(shadow.getValue(), target); } - })); + }; + } + }); + +// items.add(new InlineMenuItem()); - items.add(new InlineMenuItem()); + items.add(new InlineMenuItem(createStringResource("pageContentAccounts.menu.removeOwner")) { + private static final long serialVersionUID = 1L; - items.add(new InlineMenuItem(createStringResource("pageContentAccounts.menu.removeOwner"), true, - new ColumnMenuAction>() { + @Override + public InlineMenuItemAction getAction() { + return new ColumnMenuAction>() { + private static final long serialVersionUID = 1L; @Override public void onSubmit(AjaxRequestTarget target, Form form) { SelectableBean shadow = getRowModel().getObject(); changeOwner(shadow.getValue(), target, null, Operation.REMOVE); } - })); + }; + } + }); + + items.add(new InlineMenuItem(createStringResource("pageContentAccounts.menu.changeOwner")) { + private static final long serialVersionUID = 1L; - items.add(new InlineMenuItem(createStringResource("pageContentAccounts.menu.changeOwner"), true, - new ColumnMenuAction>() { + @Override + public InlineMenuItemAction getAction() { + return new ColumnMenuAction>() { + private static final long serialVersionUID = 1L; @Override public void onSubmit(AjaxRequestTarget target, Form form) { @@ -926,7 +1003,9 @@ protected void onSelectPerformed(AjaxRequestTarget target, FocusType focus) { pageBase.showMainPopup(browser, target); } - })); + }; + } + }); return items; } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/roles/PageRoles.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/roles/PageRoles.java index 97564d71878..2847c9ac94d 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/roles/PageRoles.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/roles/PageRoles.java @@ -111,11 +111,6 @@ protected PrismObject getNewObjectListObject(){ return (new RoleType()).asPrismObject(); } - @Override - protected IColumn, String> createActionsColumn() { - return PageRoles.this.createActionsColumn(); - } - @Override protected void objectDetailsPerformed(AjaxRequestTarget target, RoleType object) { PageRoles.this.roleDetailsPerformed(target, object.getOid()); @@ -146,21 +141,7 @@ private List, String>> initColumns() { return columns; } - private IColumn, String> createActionsColumn() { - return new InlineMenuButtonColumn>(listInlineMenuHelper.createRowActions(false), 3, PageRoles.this){ - @Override - protected int getHeaderNumberOfButtons() { - return 2; - } - - @Override - protected List getHeaderMenuItems() { - return listInlineMenuHelper.createRowActions(true); - } - }; - } - - private MainObjectListPanel getRoleTable() { + private MainObjectListPanel getRoleTable() { return (MainObjectListPanel) get(createComponentPath(ID_MAIN_FORM, ID_TABLE)); } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/roles/RoleGovernanceMemberPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/roles/RoleGovernanceMemberPanel.java index ea4967cde84..aa01ebf46f2 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/roles/RoleGovernanceMemberPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/roles/RoleGovernanceMemberPanel.java @@ -23,6 +23,7 @@ import javax.xml.namespace.QName; import com.evolveum.midpoint.schema.result.OperationResult; +import com.evolveum.midpoint.web.component.menu.cog.InlineMenuItemAction; import com.evolveum.midpoint.xml.ns._public.common.common_3.AbstractRoleType; import com.evolveum.midpoint.xml.ns._public.common.common_3.AreaCategoryType; import org.apache.wicket.ajax.AjaxRequestTarget; @@ -57,33 +58,51 @@ public RoleGovernanceMemberPanel(String id, IModel model, List relatio protected List createNewMemberInlineMenuItems() { List createMemberMenuItems = new ArrayList<>(); - createMemberMenuItems.add(new InlineMenuItem(createStringResource("roleMemberPanel.menu.createApprover"), - false, new HeaderMenuAction(this) { + createMemberMenuItems.add(new InlineMenuItem(createStringResource("roleMemberPanel.menu.createApprover")) { private static final long serialVersionUID = 1L; @Override - public void onClick(AjaxRequestTarget target) { - createFocusMemberPerformed(RelationTypes.APPROVER.getRelation(), target); + public InlineMenuItemAction getAction() { + return new HeaderMenuAction(RoleGovernanceMemberPanel.this) { + private static final long serialVersionUID = 1L; + + @Override + public void onClick(AjaxRequestTarget target) { + createFocusMemberPerformed(RelationTypes.APPROVER.getRelation(), target); + } + }; } - })); - createMemberMenuItems.add(new InlineMenuItem(createStringResource("roleMemberPanel.menu.createOwner"), - false, new HeaderMenuAction(this) { + }); + createMemberMenuItems.add(new InlineMenuItem(createStringResource("roleMemberPanel.menu.createOwner")) { private static final long serialVersionUID = 1L; @Override - public void onClick(AjaxRequestTarget target) { - createFocusMemberPerformed(RelationTypes.OWNER.getRelation(), target); + public InlineMenuItemAction getAction() { + return new HeaderMenuAction(RoleGovernanceMemberPanel.this) { + private static final long serialVersionUID = 1L; + + @Override + public void onClick(AjaxRequestTarget target) { + createFocusMemberPerformed(RelationTypes.OWNER.getRelation(), target); + } + }; } - })); - createMemberMenuItems.add(new InlineMenuItem(createStringResource("TreeTablePanel.menu.createManager"), - false, new HeaderMenuAction(this) { + }); + createMemberMenuItems.add(new InlineMenuItem(createStringResource("TreeTablePanel.menu.createManager")) { private static final long serialVersionUID = 1L; @Override - public void onClick(AjaxRequestTarget target) { - createFocusMemberPerformed(RelationTypes.MANAGER.getRelation(), target); + public InlineMenuItemAction getAction() { + return new HeaderMenuAction(RoleGovernanceMemberPanel.this) { + private static final long serialVersionUID = 1L; + + @Override + public void onClick(AjaxRequestTarget target) { + createFocusMemberPerformed(RelationTypes.MANAGER.getRelation(), target); + } + }; } - })); + }); return createMemberMenuItems; } @@ -91,37 +110,56 @@ public void onClick(AjaxRequestTarget target) { protected List createUnassignMemberInlineMenuItems() { List unassignMenuItems = new ArrayList<>(); unassignMenuItems - .add(new InlineMenuItem(createStringResource("TreeTablePanel.menu.unassignApproversSelected"), - false, new HeaderMenuAction(this) { - private static final long serialVersionUID = 1L; - - @Override - public void onClick(AjaxRequestTarget target) { - removeMembersPerformed(QueryScope.SELECTED, Arrays.asList(SchemaConstants.ORG_APPROVER), target); - } - })); + .add(new InlineMenuItem(createStringResource("TreeTablePanel.menu.unassignApproversSelected")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new HeaderMenuAction(RoleGovernanceMemberPanel.this) { + private static final long serialVersionUID = 1L; + + @Override + public void onClick(AjaxRequestTarget target) { + removeMembersPerformed(QueryScope.SELECTED, Arrays.asList(SchemaConstants.ORG_APPROVER), target); + } + }; + } + }); unassignMenuItems - .add(new InlineMenuItem(createStringResource("TreeTablePanel.menu.unassignOwnersSelected"), - false, new HeaderMenuAction(this) { - private static final long serialVersionUID = 1L; + .add(new InlineMenuItem(createStringResource("TreeTablePanel.menu.unassignOwnersSelected")) { + private static final long serialVersionUID = 1L; - @Override - public void onClick(AjaxRequestTarget target) { - removeMembersPerformed(QueryScope.SELECTED, Arrays.asList(SchemaConstants.ORG_OWNER), target); - } - })); + @Override + public InlineMenuItemAction getAction() { + return new HeaderMenuAction(RoleGovernanceMemberPanel.this) { + private static final long serialVersionUID = 1L; + + @Override + public void onClick(AjaxRequestTarget target) { + removeMembersPerformed(QueryScope.SELECTED, Arrays.asList(SchemaConstants.ORG_OWNER), target); + } + }; + } + }); unassignMenuItems - .add(new InlineMenuItem(createStringResource("TreeTablePanel.menu.unassignManagersSelected"), - false, new HeaderMenuAction(this) { - private static final long serialVersionUID = 1L; - - @Override - public void onClick(AjaxRequestTarget target) { - removeMembersPerformed(QueryScope.SELECTED, Arrays.asList(SchemaConstants.ORG_MANAGER), target); - } - })); + .add(new InlineMenuItem(createStringResource("TreeTablePanel.menu.unassignManagersSelected")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new HeaderMenuAction(RoleGovernanceMemberPanel.this) { + private static final long serialVersionUID = 1L; + + + @Override + public void onClick(AjaxRequestTarget target) { + removeMembersPerformed(QueryScope.SELECTED, Arrays.asList(SchemaConstants.ORG_MANAGER), target); + } + }; + } + }); return unassignMenuItems; } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/PageTasks.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/PageTasks.java index 5677cad6e9e..e1fa29094d6 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/PageTasks.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/server/PageTasks.java @@ -51,7 +51,9 @@ import com.evolveum.midpoint.web.component.data.Table; import com.evolveum.midpoint.web.component.data.column.*; import com.evolveum.midpoint.web.component.input.StringChoiceRenderer; +import com.evolveum.midpoint.web.component.menu.cog.ButtonInlineMenuItem; import com.evolveum.midpoint.web.component.menu.cog.InlineMenuItem; +import com.evolveum.midpoint.web.component.menu.cog.InlineMenuItemAction; import com.evolveum.midpoint.web.component.refresh.AutoRefreshDto; import com.evolveum.midpoint.web.component.refresh.AutoRefreshPanel; import com.evolveum.midpoint.web.component.refresh.Refreshable; @@ -394,17 +396,12 @@ public Object getObject() { columns.add(check); columns.add(new PropertyColumn(createStringResource("pageTasks.node.statusMessage"), "statusMessage")); - IColumn menuColumn = new InlineMenuButtonColumn(createNodesInlineMenu(false), 2, - PageTasks.this) { + IColumn menuColumn = new InlineMenuButtonColumn(createNodesInlineMenu(false), PageTasks.this) { @Override protected int getHeaderNumberOfButtons() { return 2; } - @Override - protected List getHeaderMenuItems() { - return createNodesInlineMenu(true); - } }; columns.add(menuColumn); @@ -413,98 +410,99 @@ protected List getHeaderMenuItems() { private List createNodesInlineMenu(boolean isHeader) { List items = new ArrayList<>(); - items.add(new InlineMenuItem(createStringResource("pageTasks.button.stopScheduler"), - new Model<>(false), - new Model<>(false), - false, - new ColumnMenuAction() { + items.add(new ButtonInlineMenuItem(createStringResource("pageTasks.button.startScheduler")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new ColumnMenuAction() { + private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { if (getRowModel() == null) { - stopSchedulersPerformed(target); + startSchedulersPerformed(target); } else { NodeDto rowDto = getRowModel().getObject(); - stopSchedulersPerformed(target, rowDto); + startSchedulersPerformed(target, rowDto); } } - }, InlineMenuItem.TASKS_INLINE_MENU_ITEM_ID.NODE_STOP_SCHEDULER.getMenuItemId(), - GuiStyleConstants.CLASS_STOP_MENU_ITEM, - DoubleButtonColumn.BUTTON_COLOR_CLASS.INFO.toString()) { - - private static final long serialVersionUID = 1L; + }; + } @Override - public boolean isShowConfirmationDialog() { - return PageTasks.this.isNodeShowConfirmationDialog((ColumnMenuAction) getAction()); + public String getButtonIconCssClass() { + return GuiStyleConstants.CLASS_START_MENU_ITEM; } @Override public IModel getConfirmationMessageModel() { - String actionName = createStringResource("pageTasks.message.stopSchedulerAction").getString(); + String actionName = createStringResource("pageTasks.message.startSchedulerAction").getString(); return PageTasks.this.getNodeConfirmationMessageModel((ColumnMenuAction) getAction(), actionName); } - }); - items.add(new InlineMenuItem(createStringResource("pageTasks.button.stopSchedulerAndTasks"), false, - new ColumnMenuAction() { + items.add(new ButtonInlineMenuItem(createStringResource("pageTasks.button.stopScheduler")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new ColumnMenuAction() { + private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { - stopSchedulersAndTasksPerformed(target, getRowModel() != null ? getRowModel().getObject() : null); + if (getRowModel() == null) { + stopSchedulersPerformed(target); + } else { + NodeDto rowDto = getRowModel().getObject(); + stopSchedulersPerformed(target, rowDto); + } } - }) { - - private static final long serialVersionUID = 1L; + }; + } @Override - public boolean isShowConfirmationDialog() { - return PageTasks.this.isNodeShowConfirmationDialog((ColumnMenuAction) getAction()); + public String getButtonIconCssClass() { + return GuiStyleConstants.CLASS_STOP_MENU_ITEM; } @Override public IModel getConfirmationMessageModel() { - String actionName = createStringResource("pageTasks.message.stopSchedulerTasksAction").getString(); + String actionName = createStringResource("pageTasks.message.stopSchedulerAction").getString(); return PageTasks.this.getNodeConfirmationMessageModel((ColumnMenuAction) getAction(), actionName); } }); - items.add(new InlineMenuItem(createStringResource("pageTasks.button.startScheduler"), - new Model<>(false), - new Model<>(false), - false, - new ColumnMenuAction() { + items.add(new InlineMenuItem(createStringResource("pageTasks.button.stopSchedulerAndTasks")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new ColumnMenuAction() { + private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { - if (getRowModel() == null) { - startSchedulersPerformed(target); - } else { - NodeDto rowDto = getRowModel().getObject(); - startSchedulersPerformed(target, rowDto); - } + stopSchedulersAndTasksPerformed(target, getRowModel() != null ? getRowModel().getObject() : null); } - }, InlineMenuItem.TASKS_INLINE_MENU_ITEM_ID.NODE_START.getMenuItemId(), - GuiStyleConstants.CLASS_START_MENU_ITEM, - DoubleButtonColumn.BUTTON_COLOR_CLASS.INFO.toString()) { - - private static final long serialVersionUID = 1L; - - @Override - public boolean isShowConfirmationDialog() { - return PageTasks.this.isNodeShowConfirmationDialog((ColumnMenuAction) getAction()); + }; } @Override public IModel getConfirmationMessageModel() { - String actionName = createStringResource("pageTasks.message.startSchedulerAction").getString(); + String actionName = createStringResource("pageTasks.message.stopSchedulerTasksAction").getString(); return PageTasks.this.getNodeConfirmationMessageModel((ColumnMenuAction) getAction(), actionName); } }); - items.add(new InlineMenuItem(createStringResource("pageTasks.button.deleteNode"), false, - new ColumnMenuAction() { + items.add(new InlineMenuItem(createStringResource("pageTasks.button.deleteNode")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new ColumnMenuAction() { + private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { if (getRowModel() == null) { @@ -514,13 +512,7 @@ public void onClick(AjaxRequestTarget target) { deleteNodesPerformed(target, rowDto); } } - }) { - - private static final long serialVersionUID = 1L; - - @Override - public boolean isShowConfirmationDialog() { - return PageTasks.this.isNodeShowConfirmationDialog((ColumnMenuAction) getAction()); + }; } @Override @@ -712,17 +704,13 @@ public String getObject() { } }); - IColumn menuColumn = new InlineMenuButtonColumn(createTasksInlineMenu(false, null), 2, + IColumn menuColumn = new InlineMenuButtonColumn(createTasksInlineMenu(false, null), PageTasks.this) { @Override protected int getHeaderNumberOfButtons() { return 2; } - @Override - protected List getHeaderMenuItems() { - return createTasksInlineMenu(true, null); - } }; columns.add(menuColumn); @@ -754,11 +742,13 @@ public IModel getDataModel(IModel rowModel) { private List createTasksInlineMenu(boolean isHeader, TaskDto dto) { List items = new ArrayList<>(); - items.add(new InlineMenuItem(createStringResource("pageTasks.button.suspendTask"), - new Model<>(false), - new Model<>(false), - false, - new ColumnMenuAction() { + items.add(new ButtonInlineMenuItem(createStringResource("pageTasks.button.suspendTask")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new ColumnMenuAction() { + private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { @@ -769,14 +759,12 @@ public void onClick(AjaxRequestTarget target) { suspendTaskPerformed(target, rowDto); } } - }, InlineMenuItem.TASKS_INLINE_MENU_ITEM_ID.SUSPEND.getMenuItemId(), - GuiStyleConstants.CLASS_SUSPEND_MENU_ITEM, - DoubleButtonColumn.BUTTON_COLOR_CLASS.INFO.toString()) { - private static final long serialVersionUID = 1L; + }; + } @Override - public boolean isShowConfirmationDialog() { - return PageTasks.this.isTaskShowConfirmationDialog((ColumnMenuAction) getAction()); + public String getButtonIconCssClass() { + return GuiStyleConstants.CLASS_SUSPEND_MENU_ITEM; } @Override @@ -784,13 +772,14 @@ public IModel getConfirmationMessageModel() { String actionName = createStringResource("pageTasks.message.suspendAction").getString(); return PageTasks.this.getTaskConfirmationMessageModel((ColumnMenuAction) getAction(), actionName); } - }); - items.add(new InlineMenuItem(createStringResource("pageTasks.button.resumeTask"), - new Model<>(false), - new Model<>(false), - false, - new ColumnMenuAction() { + items.add(new ButtonInlineMenuItem(createStringResource("pageTasks.button.resumeTask")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new ColumnMenuAction() { + private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { @@ -801,15 +790,12 @@ public void onClick(AjaxRequestTarget target) { resumeTaskPerformed(target, rowDto); } } - }, InlineMenuItem.TASKS_INLINE_MENU_ITEM_ID.RESUME.getMenuItemId(), - GuiStyleConstants.CLASS_RESUME_MENU_ITEM, - DoubleButtonColumn.BUTTON_COLOR_CLASS.INFO.toString()) { - - private static final long serialVersionUID = 1L; + }; + } @Override - public boolean isShowConfirmationDialog() { - return PageTasks.this.isTaskShowConfirmationDialog((ColumnMenuAction) getAction()); + public String getButtonIconCssClass() { + return GuiStyleConstants.CLASS_RESUME_MENU_ITEM; } @Override @@ -818,8 +804,13 @@ public IModel getConfirmationMessageModel() { return PageTasks.this.getTaskConfirmationMessageModel((ColumnMenuAction) getAction(), actionName); } }); - items.add(new InlineMenuItem(createStringResource("pageTasks.button.scheduleTask"), false, - new ColumnMenuAction() { + items.add(new InlineMenuItem(createStringResource("pageTasks.button.scheduleTask")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new ColumnMenuAction() { + private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { @@ -830,13 +821,7 @@ public void onClick(AjaxRequestTarget target) { scheduleTaskPerformed(target, rowDto); } } - }) { - - private static final long serialVersionUID = 1L; - - @Override - public boolean isShowConfirmationDialog() { - return PageTasks.this.isTaskShowConfirmationDialog((ColumnMenuAction) getAction()); + }; } @Override @@ -844,10 +829,14 @@ public IModel getConfirmationMessageModel() { String actionName = createStringResource("pageTasks.message.runNowAction").getString(); return PageTasks.this.getTaskConfirmationMessageModel((ColumnMenuAction) getAction(), actionName); } - }); - items.add(new InlineMenuItem(createStringResource("pageTasks.button.deleteTask"), false, - new ColumnMenuAction() { + items.add(new InlineMenuItem(createStringResource("pageTasks.button.deleteTask")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new ColumnMenuAction() { + private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { @@ -858,13 +847,7 @@ public void onClick(AjaxRequestTarget target) { deleteTaskConfirmedPerformed(target, rowDto); } } - }) { - - private static final long serialVersionUID = 1L; - - @Override - public boolean isShowConfirmationDialog() { - return PageTasks.this.isTaskShowConfirmationDialog((ColumnMenuAction) getAction()); + }; } @Override @@ -872,13 +855,18 @@ public IModel getConfirmationMessageModel() { String actionName = createStringResource("pageTasks.message.deleteAction").getString(); return PageTasks.this.getTaskConfirmationMessageModel((ColumnMenuAction) getAction(), actionName); } - }); + if (!isHeader && dto != null) { if (dto.getTaskType().getWorkManagement() != null && dto.getTaskType().getWorkManagement().getTaskKind() == TaskKindType.COORDINATOR) { - items.add(new InlineMenuItem(createStringResource("pageTasks.button.reconcileWorkers"), false, - new ColumnMenuAction() { + items.add(new InlineMenuItem(createStringResource("pageTasks.button.reconcileWorkers")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new ColumnMenuAction() { + private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { @@ -889,13 +877,7 @@ public void onClick(AjaxRequestTarget target) { reconcileWorkersConfirmedPerformed(target, rowDto); } } - }) { - - private static final long serialVersionUID = 1L; - - @Override - public boolean isShowConfirmationDialog() { - return PageTasks.this.isTaskShowConfirmationDialog((ColumnMenuAction) getAction()); + }; } @Override @@ -904,8 +886,14 @@ public IModel getConfirmationMessageModel() { return PageTasks.this.getTaskConfirmationMessageModel((ColumnMenuAction) getAction(), actionName); } }); - items.add(new InlineMenuItem(createStringResource("pageTasks.button.suspendCoordinatorOnly"), false, - new ColumnMenuAction() { + + items.add(new InlineMenuItem(createStringResource("pageTasks.button.suspendCoordinatorOnly")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new ColumnMenuAction() { + private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { @@ -916,13 +904,7 @@ public void onClick(AjaxRequestTarget target) { suspendCoordinatorOnly(target, rowDto); } } - }) { - - private static final long serialVersionUID = 1L; - - @Override - public boolean isShowConfirmationDialog() { - return PageTasks.this.isTaskShowConfirmationDialog((ColumnMenuAction) getAction()); + }; } @Override @@ -931,8 +913,13 @@ public IModel getConfirmationMessageModel() { return PageTasks.this.getTaskConfirmationMessageModel((ColumnMenuAction) getAction(), actionName); } }); - items.add(new InlineMenuItem(createStringResource("pageTasks.button.resumeCoordinatorOnly"), false, - new ColumnMenuAction() { + items.add(new InlineMenuItem(createStringResource("pageTasks.button.resumeCoordinatorOnly")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new ColumnMenuAction() { + private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { @@ -943,13 +930,7 @@ public void onClick(AjaxRequestTarget target) { resumeCoordinatorOnly(target, rowDto); } } - }) { - - private static final long serialVersionUID = 1L; - - @Override - public boolean isShowConfirmationDialog() { - return PageTasks.this.isTaskShowConfirmationDialog((ColumnMenuAction) getAction()); + }; } @Override @@ -958,8 +939,13 @@ public IModel getConfirmationMessageModel() { return PageTasks.this.getTaskConfirmationMessageModel((ColumnMenuAction) getAction(), actionName); } }); - items.add(new InlineMenuItem(createStringResource("pageTasks.button.deleteWorkersAndWorkState"), false, - new ColumnMenuAction() { + items.add(new InlineMenuItem(createStringResource("pageTasks.button.deleteWorkersAndWorkState")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new ColumnMenuAction() { + private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { @@ -970,13 +956,7 @@ public void onClick(AjaxRequestTarget target) { deleteWorkersAndWorkState(target, rowDto); } } - }) { - - private static final long serialVersionUID = 1L; - - @Override - public boolean isShowConfirmationDialog() { - return PageTasks.this.isTaskShowConfirmationDialog((ColumnMenuAction) getAction()); + }; } @Override @@ -988,20 +968,19 @@ public IModel getConfirmationMessageModel() { } } if (isHeader) { - items.add(new InlineMenuItem(createStringResource("pageTasks.button.deleteAllClosedTasks"), false, - new ColumnMenuAction() { + items.add(new InlineMenuItem(createStringResource("pageTasks.button.deleteAllClosedTasks")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new ColumnMenuAction() { + private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { deleteAllClosedTasksConfirmedPerformed(target); } - }) { - - private static final long serialVersionUID = 1L; - - @Override - public boolean isShowConfirmationDialog() { - return true; + }; } @Override diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/services/PageServices.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/services/PageServices.java index 349035ffbd7..615e04475be 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/services/PageServices.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/services/PageServices.java @@ -109,22 +109,6 @@ protected List, String>> createColumns() { return ColumnUtils.getDefaultServiceColumns(); } - @Override - protected IColumn, String> createActionsColumn() { - return new InlineMenuButtonColumn>(listInlineMenuHelper.createRowActions(false), - 3, PageServices.this){ - @Override - protected int getHeaderNumberOfButtons() { - return 2; - } - - @Override - protected List getHeaderMenuItems() { - return listInlineMenuHelper.createRowActions(true); - } - }; - } - @Override protected List createInlineMenu() { return listInlineMenuHelper.createRowActions(false); diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/PageUsers.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/PageUsers.java index 855e4d9790a..a00f861b10c 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/PageUsers.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/PageUsers.java @@ -28,6 +28,8 @@ import com.evolveum.midpoint.prism.query.ObjectQuery; import com.evolveum.midpoint.web.application.Url; import com.evolveum.midpoint.web.component.data.column.*; +import com.evolveum.midpoint.web.component.menu.cog.ButtonInlineMenuItem; +import com.evolveum.midpoint.web.component.menu.cog.InlineMenuItemAction; import com.evolveum.midpoint.web.component.search.SearchFactory; import com.evolveum.midpoint.web.component.search.SearchItem; import com.evolveum.midpoint.web.component.search.SearchValue; @@ -183,21 +185,6 @@ protected PrismObject getNewObjectListObject(){ return (new UserType()).asPrismObject(); } - @Override - protected IColumn, String> createActionsColumn() { - return new InlineMenuButtonColumn>(createRowActions(false), 3, PageUsers.this){ - @Override - protected int getHeaderNumberOfButtons() { - return 2; - } - - @Override - protected List getHeaderMenuItems() { - return createRowActions(true); - } - }; - } - @Override protected List createInlineMenu() { return createRowActions(false); @@ -278,18 +265,13 @@ public IModel getDataModel(IModel> rowModel) { } private List createRowActions(boolean isHeader) { - int id = isHeader ? - InlineMenuItem.FOCUS_LIST_INLINE_MENU_ITEM_ID.HEADER_ENABLE.getMenuItemId() : - InlineMenuItem.FOCUS_LIST_INLINE_MENU_ITEM_ID.ENABLE.getMenuItemId(); - - List menu = new ArrayList<>(); - menu.add(new InlineMenuItem( - createStringResource("pageUsers.menu.enable"), - new Model<>(false), - new Model<>(false), - false, - new ColumnMenuAction>() { - private static final long serialVersionUID = 1L; + List menu = new ArrayList<>(); + menu.add(new ButtonInlineMenuItem(createStringResource("pageUsers.menu.enable")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new ColumnMenuAction>() { @Override public void onClick(AjaxRequestTarget target) { @@ -300,114 +282,100 @@ public void onClick(AjaxRequestTarget target) { updateActivationPerformed(target, true, rowDto.getValue()); } } - }, - id, - GuiStyleConstants.CLASS_OBJECT_USER_ICON, - null) { - - private static final long serialVersionUID = 1L; + }; + } @Override - public boolean isShowConfirmationDialog() { - return PageUsers.this.isShowConfirmationDialog((ColumnMenuAction) getAction()); + public String getButtonIconCssClass(){ + return GuiStyleConstants.CLASS_OBJECT_USER_ICON; } @Override - public IModel getConfirmationMessageModel() { + public IModel getConfirmationMessageModel(){ String actionName = createStringResource("pageUsers.message.enableAction").getString(); return PageUsers.this.getConfirmationMessageModel((ColumnMenuAction) getAction(), actionName); } + }); - menu.add(new InlineMenuItem(createStringResource("pageUsers.menu.disable"), - isHeader ? new Model<>(true) : new Model<>(false), - isHeader ? new Model<>(true) : new Model<>(false), - false, - new ColumnMenuAction>() { + menu.add(new InlineMenuItem(createStringResource("pageUsers.menu.disable")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new ColumnMenuAction>() { private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { - if (getRowModel() == null){ + if (getRowModel() == null) { updateActivationPerformed(target, false, null); } else { SelectableBean rowDto = getRowModel().getObject(); updateActivationPerformed(target, false, rowDto.getValue()); } - } - }, isHeader ? InlineMenuItem.FOCUS_LIST_INLINE_MENU_ITEM_ID.HEADER_DISABLE.getMenuItemId() - : InlineMenuItem.FOCUS_LIST_INLINE_MENU_ITEM_ID.DISABLE.getMenuItemId(), - GuiStyleConstants.CLASS_OBJECT_USER_ICON, - null) { - - private static final long serialVersionUID = 1L; - - @Override - public boolean isShowConfirmationDialog() { - return PageUsers.this.isShowConfirmationDialog((ColumnMenuAction) getAction()); + } + }; } @Override - public IModel getConfirmationMessageModel(){ + public IModel getConfirmationMessageModel() { String actionName = createStringResource("pageUsers.message.disableAction").getString(); return PageUsers.this.getConfirmationMessageModel((ColumnMenuAction) getAction(), actionName); } }); - menu.add(new InlineMenuItem(createStringResource("pageUsers.menu.reconcile"), - new Model<>(false), new Model<>(false), false, - new ColumnMenuAction>() { + menu.add(new ButtonInlineMenuItem(createStringResource("pageUsers.menu.reconcile")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new ColumnMenuAction>() { private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { - if (getRowModel() == null){ + if (getRowModel() == null) { reconcilePerformed(target, null); } else { SelectableBean rowDto = getRowModel().getObject(); reconcilePerformed(target, rowDto.getValue()); } - } - }, isHeader ? InlineMenuItem.FOCUS_LIST_INLINE_MENU_ITEM_ID.HEADER_RECONCILE.getMenuItemId() - : InlineMenuItem.FOCUS_LIST_INLINE_MENU_ITEM_ID.RECONCILE.getMenuItemId(), - GuiStyleConstants.CLASS_RECONCILE_MENU_ITEM, - DoubleButtonColumn.BUTTON_COLOR_CLASS.INFO.toString()){ - - private static final long serialVersionUID = 1L; + } + }; + } @Override - public boolean isShowConfirmationDialog() { - return PageUsers.this.isShowConfirmationDialog((ColumnMenuAction) getAction()); + public String getButtonIconCssClass() { + return GuiStyleConstants.CLASS_OBJECT_USER_ICON; } @Override - public IModel getConfirmationMessageModel(){ + public IModel getConfirmationMessageModel() { String actionName = createStringResource("pageUsers.message.reconcileAction").getString(); return PageUsers.this.getConfirmationMessageModel((ColumnMenuAction) getAction(), actionName); } }); - menu.add(new InlineMenuItem(createStringResource("pageUsers.menu.unlock"), false, - new ColumnMenuAction>() { + menu.add(new InlineMenuItem(createStringResource("pageUsers.menu.unlock")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new ColumnMenuAction>() { private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { - if (getRowModel() == null){ + if (getRowModel() == null) { unlockPerformed(target, null); } else { SelectableBean rowDto = getRowModel().getObject(); unlockPerformed(target, rowDto.getValue()); } } - }, InlineMenuItem.FOCUS_LIST_INLINE_MENU_ITEM_ID.UNLOCK.getMenuItemId()){ - - private static final long serialVersionUID = 1L; - - @Override - public boolean isShowConfirmationDialog() { - return PageUsers.this.isShowConfirmationDialog((ColumnMenuAction) getAction()); + }; } @Override @@ -417,25 +385,22 @@ public IModel getConfirmationMessageModel(){ } }); - menu.add(new InlineMenuItem(createStringResource("pageUsers.menu.delete"), false, - new ColumnMenuAction>() { + menu.add(new InlineMenuItem(createStringResource("pageUsers.menu.delete")) { + private static final long serialVersionUID = 1L; + @Override + public InlineMenuItemAction getAction() { + return new ColumnMenuAction>() { @Override public void onClick(AjaxRequestTarget target) { - if (getRowModel() == null){ + if (getRowModel() == null) { deleteConfirmedPerformed(target, null); } else { SelectableBean rowDto = getRowModel().getObject(); deleteConfirmedPerformed(target, rowDto.getValue()); } } - }, InlineMenuItem.FOCUS_LIST_INLINE_MENU_ITEM_ID.DELETE.getMenuItemId()){ - - private static final long serialVersionUID = 1L; - - @Override - public boolean isShowConfirmationDialog() { - return PageUsers.this.isShowConfirmationDialog((ColumnMenuAction) getAction()); + }; } @Override @@ -445,22 +410,30 @@ public IModel getConfirmationMessageModel(){ } }); - menu.add(new InlineMenuItem(createStringResource("pageUsers.menu.merge"), - isHeader ? new Model<>(false) : new Model<>(true), - isHeader ? new Model<>(false) : new Model<>(true), - false, - new ColumnMenuAction>() { + menu.add(new InlineMenuItem(createStringResource("pageUsers.menu.merge")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new ColumnMenuAction>() { @Override public void onClick(AjaxRequestTarget target) { - if (getRowModel() == null){ + if (getRowModel() == null) { mergePerformed(target, null); } else { SelectableBean rowDto = getRowModel().getObject(); mergePerformed(target, rowDto.getValue()); } } - }, InlineMenuItem.FOCUS_LIST_INLINE_MENU_ITEM_ID.MERGE.getMenuItemId(), "", "")); + }; + } + + @Override + protected boolean isHeaderMenuItem(){ + return false; + } + }); return menu; } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/component/AbstractRoleMemberPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/component/AbstractRoleMemberPanel.java index a873128e041..ccbf82c0a46 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/component/AbstractRoleMemberPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/component/AbstractRoleMemberPanel.java @@ -30,6 +30,7 @@ import com.evolveum.midpoint.schema.SelectorOptions; import com.evolveum.midpoint.schema.constants.RelationTypes; import com.evolveum.midpoint.security.api.AuthorizationConstants; +import com.evolveum.midpoint.web.component.menu.cog.InlineMenuItemAction; import com.evolveum.midpoint.web.component.search.Search; import com.evolveum.midpoint.web.component.search.SearchFactory; import com.evolveum.midpoint.xml.ns._public.common.common_3.*; @@ -184,14 +185,9 @@ protected List, String>> createColumns() { return createMembersColumns(); } - @Override - protected IColumn, String> createActionsColumn(){ - return new InlineMenuHeaderColumn(createMembersHeaderInlineMenu()); - } - @Override protected List createInlineMenu() { - return new ArrayList<>(); + return createMembersHeaderInlineMenu(); } @Override @@ -268,67 +264,97 @@ protected boolean isAuthorizedToRecomputeMembers(){ protected List createNewMemberInlineMenuItems() { List newMemberMenuItems = new ArrayList<>(); - newMemberMenuItems.add(new InlineMenuItem(createStringResource("TreeTablePanel.menu.createMember"), - false, new HeaderMenuAction(this) { + newMemberMenuItems.add(new InlineMenuItem(createStringResource("TreeTablePanel.menu.createMember")) { private static final long serialVersionUID = 1L; @Override - public void onClick(AjaxRequestTarget target) { - createFocusMemberPerformed(null, target); + public InlineMenuItemAction getAction() { + return new HeaderMenuAction(AbstractRoleMemberPanel.this) { + private static final long serialVersionUID = 1L; + + @Override + public void onClick(AjaxRequestTarget target) { + createFocusMemberPerformed(null, target); + } + }; } - })); + }); return newMemberMenuItems; } protected List assignNewMemberInlineMenuItems() { List newMemberMenuItems = new ArrayList<>(); - newMemberMenuItems.add(new InlineMenuItem(createStringResource("TreeTablePanel.menu.addMembers"), false, - new HeaderMenuAction(this) { + newMemberMenuItems.add(new InlineMenuItem(createStringResource("TreeTablePanel.menu.addMembers")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new HeaderMenuAction(AbstractRoleMemberPanel.this) { private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { addMembers(target, getAvailableRelationList()); } - })); + }; + } + }); return newMemberMenuItems; } protected List createMemberRecomputeInlineMenuItems() { List recomputeMenuItems = new ArrayList<>(); - recomputeMenuItems - .add(new InlineMenuItem(createStringResource("TreeTablePanel.menu.recomputeMembersSelected"), - false, new HeaderMenuAction(this) { - private static final long serialVersionUID = 1L; - - @Override - public void onClick(AjaxRequestTarget target) { - recomputeMembersPerformed(QueryScope.SELECTED, target); - } - })); - recomputeMenuItems - .add(new InlineMenuItem(createStringResource("TreeTablePanel.menu.recomputeMembersAllDirect"), - false, new HeaderMenuAction(this) { - private static final long serialVersionUID = 1L; + recomputeMenuItems + .add(new InlineMenuItem(createStringResource("TreeTablePanel.menu.recomputeMembersSelected")) { + private static final long serialVersionUID = 1L; - @Override - public void onClick(AjaxRequestTarget target) { - recomputeMembersPerformed(QueryScope.ALL_DIRECT, target); + @Override + public InlineMenuItemAction getAction() { + return new HeaderMenuAction(AbstractRoleMemberPanel.this) { + private static final long serialVersionUID = 1L; + + @Override + public void onClick(AjaxRequestTarget target) { + recomputeMembersPerformed(QueryScope.SELECTED, target); + } + }; + } + }); + recomputeMenuItems + .add(new InlineMenuItem(createStringResource("TreeTablePanel.menu.recomputeMembersAllDirect")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new HeaderMenuAction(AbstractRoleMemberPanel.this) { + private static final long serialVersionUID = 1L; - } - })); + @Override + public void onClick(AjaxRequestTarget target) { + recomputeMembersPerformed(QueryScope.ALL_DIRECT, target); + + } + }; + } + }); recomputeMenuItems - .add(new InlineMenuItem(createStringResource("TreeTablePanel.menu.recomputeMembersAll"), - false, new HeaderMenuAction(this) { - private static final long serialVersionUID = 1L; + .add(new InlineMenuItem(createStringResource("TreeTablePanel.menu.recomputeMembersAll")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new HeaderMenuAction(AbstractRoleMemberPanel.this) { + private static final long serialVersionUID = 1L; - @Override - public void onClick(AjaxRequestTarget target) { - recomputeMembersPerformed(QueryScope.ALL, target); + @Override + public void onClick(AjaxRequestTarget target) { + recomputeMembersPerformed(QueryScope.ALL, target); - } - })); + } + }; + } + }); return recomputeMenuItems; } @@ -336,29 +362,41 @@ public void onClick(AjaxRequestTarget target) { protected List createUnassignMemberInlineMenuItems() { List unassignMenuItems = new ArrayList<>(); unassignMenuItems - .add(new InlineMenuItem(createStringResource("TreeTablePanel.menu.unassignMembersSelected"), - false, new HeaderMenuAction(this) { + .add(new InlineMenuItem(createStringResource("TreeTablePanel.menu.unassignMembersSelected")) { private static final long serialVersionUID = 1L; @Override - public void onClick(AjaxRequestTarget target) { - removeMembersPerformed(QueryScope.SELECTED, null , target); + public InlineMenuItemAction getAction() { + return new HeaderMenuAction(AbstractRoleMemberPanel.this) { + private static final long serialVersionUID = 1L; + + @Override + public void onClick(AjaxRequestTarget target) { + removeMembersPerformed(QueryScope.SELECTED, null, target); + } + }; } - })); + }); return unassignMenuItems; } protected List createUnassignAllMemberInlineMenuItems() { List unassignMenuItems = new ArrayList<>(); - unassignMenuItems.add(new InlineMenuItem(createStringResource("TreeTablePanel.menu.unassignMembersAll"), - false, new HeaderMenuAction(this) { + unassignMenuItems.add(new InlineMenuItem(createStringResource("TreeTablePanel.menu.unassignMembersAll")) { private static final long serialVersionUID = 1L; @Override - public void onClick(AjaxRequestTarget target) { - removeMembersPerformed(QueryScope.ALL, null, target); + public InlineMenuItemAction getAction() { + return new HeaderMenuAction(AbstractRoleMemberPanel.this) { + private static final long serialVersionUID = 1L; + + @Override + public void onClick(AjaxRequestTarget target) { + removeMembersPerformed(QueryScope.ALL, null, target); + } + }; } - })); + }); return unassignMenuItems; } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/component/OrgMemberPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/component/OrgMemberPanel.java index 4abb73e8dac..5782f62ea0b 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/component/OrgMemberPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/component/OrgMemberPanel.java @@ -25,6 +25,7 @@ import javax.xml.namespace.QName; +import com.evolveum.midpoint.gui.api.GuiStyleConstants; import com.evolveum.midpoint.gui.api.component.ChooseMemberPopup; import com.evolveum.midpoint.gui.api.component.ChooseOrgMemberPopup; import com.evolveum.midpoint.gui.api.model.LoadableModel; @@ -34,6 +35,7 @@ import com.evolveum.midpoint.security.api.AuthorizationConstants; import com.evolveum.midpoint.web.component.input.DropDownChoicePanel; import com.evolveum.midpoint.web.component.input.RelationDropDownChoicePanel; +import com.evolveum.midpoint.web.component.menu.cog.InlineMenuItemAction; import com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour; import com.evolveum.midpoint.web.page.admin.configuration.component.EmptyOnChangeAjaxFormUpdatingBehavior; import com.evolveum.midpoint.web.page.self.PageAssignmentShoppingCart; @@ -376,52 +378,77 @@ private List createManagersHeaderInlineMenu() { List headerMenuItems = new ArrayList<>(); if (WebComponentUtil.isAuthorized(AuthorizationConstants.AUTZ_UI_ADMIN_ADD_ORG_MEMBER_ACTION_URI)) { - headerMenuItems.add(new InlineMenuItem(createStringResource("TreeTablePanel.menu.createManager"), - false, new HeaderMenuAction(this) { + headerMenuItems.add(new InlineMenuItem(createStringResource("TreeTablePanel.menu.createManager")) { private static final long serialVersionUID = 1L; @Override - public void onClick(AjaxRequestTarget target) { - OrgMemberPanel.this.createFocusMemberPerformed(SchemaConstants.ORG_MANAGER, target); + public InlineMenuItemAction getAction() { + return new HeaderMenuAction(OrgMemberPanel.this) { + private static final long serialVersionUID = 1L; + + @Override + public void onClick(AjaxRequestTarget target) { + OrgMemberPanel.this.createFocusMemberPerformed(SchemaConstants.ORG_MANAGER, target); + } + }; } - })); + }); } if (WebComponentUtil.isAuthorized(AuthorizationConstants.AUTZ_UI_ADMIN_ASSIGN_ORG_MEMBER_ACTION_URI)) { - headerMenuItems.add(new InlineMenuItem(createStringResource("TreeTablePanel.menu.addManagers"), false, - new HeaderMenuAction(this) { + headerMenuItems.add(new InlineMenuItem(createStringResource("TreeTablePanel.menu.addManagers")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new HeaderMenuAction(OrgMemberPanel.this) { private static final long serialVersionUID = 1L; + @Override public void onClick(AjaxRequestTarget target) { OrgMemberPanel.this.addMembers(target, Arrays.asList(RelationTypes.MANAGER.getRelation())); } - })); + }; + } + }); } if (WebComponentUtil.isAuthorized(AuthorizationConstants.AUTZ_UI_ADMIN_UNASSIGN_ORG_MEMBER_ACTION_URI)) { - headerMenuItems.add(new InlineMenuItem(createStringResource("TreeTablePanel.menu.removeManagersAll"), - false, new HeaderMenuAction(this) { + headerMenuItems.add(new InlineMenuItem(createStringResource("TreeTablePanel.menu.removeManagersAll")) { private static final long serialVersionUID = 1L; @Override - public void onClick(AjaxRequestTarget target) { - removeManagersPerformed(QueryScope.ALL, target); + public InlineMenuItemAction getAction() { + return new HeaderMenuAction(OrgMemberPanel.this) { + private static final long serialVersionUID = 1L; + + @Override + public void onClick(AjaxRequestTarget target) { + removeManagersPerformed(QueryScope.ALL, target); + } + }; } - })); + }); } if (WebComponentUtil.isAuthorized(AuthorizationConstants.AUTZ_UI_ADMIN_RECOMPUTE_ORG_MEMBER_ACTION_URI)) { headerMenuItems - .add(new InlineMenuItem(createStringResource("TreeTablePanel.menu.recomputeManagersAll"), - false, new HeaderMenuAction(this) { + .add(new InlineMenuItem(createStringResource("TreeTablePanel.menu.recomputeManagersAll")) { private static final long serialVersionUID = 1L; @Override - public void onClick(AjaxRequestTarget target) { - recomputeManagersPerformed(QueryScope.ALL, target); + public InlineMenuItemAction getAction() { + return new HeaderMenuAction(OrgMemberPanel.this) { + private static final long serialVersionUID = 1L; + + @Override + public void onClick(AjaxRequestTarget target) { + recomputeManagersPerformed(QueryScope.ALL, target); + } + }; } - })); + }); } return headerMenuItems; diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/component/TreeTablePanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/component/TreeTablePanel.java index 2f0e3f468d4..f74c6e9e710 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/component/TreeTablePanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/component/TreeTablePanel.java @@ -39,7 +39,9 @@ import com.evolveum.midpoint.web.component.data.column.ColumnMenuAction; import com.evolveum.midpoint.web.component.dialog.ConfirmationPanel; import com.evolveum.midpoint.web.component.menu.cog.InlineMenuItem; +import com.evolveum.midpoint.web.component.menu.cog.InlineMenuItemAction; import com.evolveum.midpoint.web.component.util.SelectableBean; +import com.evolveum.midpoint.web.page.admin.configuration.component.HeaderMenuAction; import com.evolveum.midpoint.web.page.admin.orgs.OrgTreeAssignablePanel; import com.evolveum.midpoint.web.page.admin.orgs.OrgTreePanel; import com.evolveum.midpoint.web.page.admin.users.PageOrgTree; @@ -160,26 +162,38 @@ private List createTreeChildrenMenu(OrgType org) { null, null, null); InlineMenuItem item; if (allowModify) { - item = new InlineMenuItem(createStringResource("TreeTablePanel.move"), - new ColumnMenuAction>() { + item = new InlineMenuItem(createStringResource("TreeTablePanel.move")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new ColumnMenuAction>() { private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { moveRootPerformed(getRowModel().getObject(), target); } - }); + }; + } + }; items.add(item); - item = new InlineMenuItem(createStringResource("TreeTablePanel.makeRoot"), - new ColumnMenuAction>() { + item = new InlineMenuItem(createStringResource("TreeTablePanel.makeRoot")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new ColumnMenuAction>() { private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { makeRootPerformed(getRowModel().getObject(), target); } - }); + }; + } + }; items.add(item); } @@ -190,49 +204,73 @@ public void onClick(AjaxRequestTarget target) { AuthorizationPhaseType.REQUEST, org.asPrismObject(), null, null, null); if (allowDelete) { - item = new InlineMenuItem(createStringResource("TreeTablePanel.delete"), - new ColumnMenuAction>() { + item = new InlineMenuItem(createStringResource("TreeTablePanel.delete")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new ColumnMenuAction>() { private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { deleteNodePerformed(getRowModel().getObject(), target); } - }); + }; + } + }; items.add(item); } if (allowModify) { - item = new InlineMenuItem(createStringResource("TreeTablePanel.recompute"), - new ColumnMenuAction>() { + item = new InlineMenuItem(createStringResource("TreeTablePanel.recompute")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new ColumnMenuAction>() { private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { recomputeRootPerformed(getRowModel().getObject(), target); } - }); + }; + } + }; items.add(item); - item = new InlineMenuItem(createStringResource("TreeTablePanel.edit"), Model.of(allowModify), Model.of(allowModify), - new ColumnMenuAction>() { + item = new InlineMenuItem(createStringResource("TreeTablePanel.edit")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new ColumnMenuAction>() { private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { editRootPerformed(getRowModel().getObject(), target); } - }); + }; + } + }; items.add(item); } else if (allowRead){ - item = new InlineMenuItem(createStringResource("TreeTablePanel.viewDetails"), Model.of(allowRead), Model.of(allowRead), - new ColumnMenuAction>() { + item = new InlineMenuItem(createStringResource("TreeTablePanel.viewDetails")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new ColumnMenuAction>() { private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { editRootPerformed(getRowModel().getObject(), target); } - }); + }; + } + }; items.add(item); } @@ -242,8 +280,12 @@ public void onClick(AjaxRequestTarget target) { AuthorizationPhaseType.REQUEST, (new OrgType(parentPage.getPrismContext())).asPrismObject(), null, null, null); if (allowModify && allowAddNew) { - item = new InlineMenuItem(createStringResource("TreeTablePanel.createChild"), - new ColumnMenuAction>() { + item = new InlineMenuItem(createStringResource("TreeTablePanel.createChild")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new ColumnMenuAction>() { private static final long serialVersionUID = 1L; @Override @@ -256,7 +298,9 @@ public void onClick(AjaxRequestTarget target) { throw new SystemException(e.getMessage(), e); } } - }); + }; + } + }; items.add(item); } } catch (SchemaException | ExpressionEvaluationException | ObjectNotFoundException | CommunicationException | ConfigurationException | SecurityViolationException ex) { diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/valuePolicy/PageValuePolicies.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/valuePolicy/PageValuePolicies.java index ed26b0d4eec..7a6fa7e320e 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/valuePolicy/PageValuePolicies.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/valuePolicy/PageValuePolicies.java @@ -23,20 +23,17 @@ import com.evolveum.midpoint.web.application.AuthorizationAction; import com.evolveum.midpoint.web.application.PageDescriptor; import com.evolveum.midpoint.web.application.Url; -import com.evolveum.midpoint.web.component.data.column.ColumnMenuAction; -import com.evolveum.midpoint.web.component.data.column.DoubleButtonColumn; -import com.evolveum.midpoint.web.component.data.column.InlineMenuButtonColumn; import com.evolveum.midpoint.web.component.form.Form; +import com.evolveum.midpoint.web.component.menu.cog.ButtonInlineMenuItem; import com.evolveum.midpoint.web.component.menu.cog.InlineMenuItem; +import com.evolveum.midpoint.web.component.menu.cog.InlineMenuItemAction; import com.evolveum.midpoint.web.component.util.SelectableBean; import com.evolveum.midpoint.web.session.UserProfileStorage; import com.evolveum.midpoint.web.util.OnePageParameterEncoder; -import com.evolveum.midpoint.xml.ns._public.common.common_3.ReportType; import com.evolveum.midpoint.xml.ns._public.common.common_3.ValuePolicyType; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn; import org.apache.wicket.extensions.markup.html.repeater.data.table.PropertyColumn; -import org.apache.wicket.model.Model; import org.apache.wicket.request.mapper.parameter.PageParameters; import java.util.ArrayList; @@ -95,12 +92,7 @@ protected List, String>> createColumns() @Override protected List createInlineMenu() { - return new ArrayList<>(); - } - - @Override - protected IColumn, String> createActionsColumn() { - return PageValuePolicies.this.createActionsColumn(); + return PageValuePolicies.this.createInlineMenu(); } @Override @@ -131,34 +123,21 @@ private List, String>> initColumns() { } - private IColumn, String> createActionsColumn() { - return new InlineMenuButtonColumn>(createInlineMenu(), 1, this) { + private List createInlineMenu() { + List menu = new ArrayList<>(); + menu.add(new ButtonInlineMenuItem(createStringResource("pageValuePolicies.button.delete")) { + private static final long serialVersionUID = 1L; + @Override - protected List getHeaderMenuItems() { - return new ArrayList<>(); + public String getButtonIconCssClass() { + return GuiStyleConstants.CLASS_DELETE_MENU_ITEM; } @Override - protected int getHeaderNumberOfButtons() { - return 0; + public InlineMenuItemAction getAction() { + return null; } - }; - } - - private List createInlineMenu() { - List menu = new ArrayList<>(); - menu.add(new InlineMenuItem(createStringResource("pageValuePolicies.button.delete"), - new Model<>(true), new Model<>(true), false, - new ColumnMenuAction>() { - - @Override - public void onClick(AjaxRequestTarget target) { - - } - }, 0, - GuiStyleConstants.CLASS_DELETE_MENU_ITEM, - DoubleButtonColumn.BUTTON_COLOR_CLASS.DANGER.toString())); - + }); return menu; } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/self/PageAssignmentsList.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/self/PageAssignmentsList.java index 59b8025aece..b63305842dc 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/self/PageAssignmentsList.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/self/PageAssignmentsList.java @@ -33,6 +33,8 @@ import com.evolveum.midpoint.web.component.menu.cog.InlineMenuItem; import com.evolveum.midpoint.web.component.menu.cog.InlineMenuItemAction; import com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour; +import com.evolveum.midpoint.web.page.admin.configuration.component.HeaderMenuAction; +import com.evolveum.midpoint.web.page.admin.reports.PageCreatedReports; import com.evolveum.midpoint.web.page.admin.users.component.ExecuteChangeOptionsDto; import com.evolveum.midpoint.web.page.admin.users.dto.UserDtoStatus; import com.evolveum.midpoint.web.page.self.dto.AssignmentConflictDto; @@ -114,15 +116,21 @@ public void initLayout() { @Override protected List createAssignmentMenu() { List items = new ArrayList<>(); - InlineMenuItem item = new InlineMenuItem(createStringResource("AssignmentTablePanel.menu.unassign"), - new InlineMenuItemAction() { + InlineMenuItem item = new InlineMenuItem(createStringResource("AssignmentTablePanel.menu.unassign")) { + private static final long serialVersionUID = 1L; + + @Override + public InlineMenuItemAction getAction() { + return new InlineMenuItemAction() { private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { deleteAssignmentPerformed(target, null); } - }); + }; + } + }; items.add(item); return items; } From e6556c2a3d3ac7515aa271593fba68f3d46794d9 Mon Sep 17 00:00:00 2001 From: Katarina Valalikova Date: Mon, 27 Aug 2018 10:22:41 +0200 Subject: [PATCH 02/16] small code cleanup - logging --- .../LoggingConfigurationTabPanel.java | 117 ++++++++++-------- 1 file changed, 64 insertions(+), 53 deletions(-) diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/impl/page/admin/configuration/component/LoggingConfigurationTabPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/impl/page/admin/configuration/component/LoggingConfigurationTabPanel.java index 878b97f7b02..c50898da7d9 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/impl/page/admin/configuration/component/LoggingConfigurationTabPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/impl/page/admin/configuration/component/LoggingConfigurationTabPanel.java @@ -67,6 +67,7 @@ import com.evolveum.midpoint.web.component.prism.PrismContainerPanel; import com.evolveum.midpoint.web.component.search.SearchFactory; import com.evolveum.midpoint.web.component.search.SearchItemDefinition; +import com.evolveum.midpoint.web.model.ContainerWrapperFromObjectWrapperModel; import com.evolveum.midpoint.web.session.PageStorage; import com.evolveum.midpoint.web.session.UserProfileStorage; import com.evolveum.midpoint.web.session.UserProfileStorage.TableId; @@ -98,8 +99,8 @@ public class LoggingConfigurationTabPanel extends BasePanel> appenderModel = null; - IModel> loggerModel = null; +// IModel> appenderModel = null; +// IModel> loggerModel = null; public LoggingConfigurationTabPanel(String id, IModel> model) { super(id, model); @@ -118,24 +119,28 @@ protected void initLayout() { add(loggingPanel); TableId tableId = UserProfileStorage.TableId.OBJECT_POLICIES_TAB_TABLE; - int itemPerPage = (int) ((PageBase)LoggingConfigurationTabPanel.this.getPage()).getItemsPerPage(UserProfileStorage.TableId.OBJECT_POLICIES_TAB_TABLE); - PageStorage pageStorage = ((PageBase)LoggingConfigurationTabPanel.this.getPage()).getSessionStorage().getObjectPoliciesConfigurationTabStorage(); + int itemPerPage = (int) getPageBase().getItemsPerPage(tableId); + PageStorage pageStorage = getPageBase().getSessionStorage().getObjectPoliciesConfigurationTabStorage(); - ContainerValueWrapper containerValueWrapper = getModelObject().getValues().get(0); - ContainerWrapper loggersContainerWrap = containerValueWrapper.findContainerWrapper(new ItemPath(getModel().getObject().getPath(), LoggingConfigurationType.F_CLASS_LOGGER)); - IModel> loggerModel = new AbstractReadOnlyModel>() { - - private static final long serialVersionUID = 1L; - - @Override - public ContainerWrapper getObject() { - return loggersContainerWrap; - } - - }; + IModel> loggerModel = + new ContainerWrapperFromObjectWrapperModel(Model.of(getModelObject().getObjectWrapper()), new ItemPath(SystemConfigurationType.F_LOGGING, LoggingConfigurationType.F_CLASS_LOGGER)); - this.loggerModel = loggerModel; +// ContainerValueWrapper containerValueWrapper = getModelObject().getValues().get(0); +// +// ContainerWrapper loggersContainerWrap = containerValueWrapper.findContainerWrapper(new ItemPath(getModel().getObject().getPath(), LoggingConfigurationType.F_CLASS_LOGGER)); +// IModel> loggerModel = new AbstractReadOnlyModel>() { +// +// private static final long serialVersionUID = 1L; +// +// @Override +// public ContainerWrapper getObject() { +// return loggersContainerWrap; +// } +// +// }; + +// this.loggerModel = loggerModel; PrismContainerHeaderPanel loggersHeader = new PrismContainerHeaderPanel(ID_LOGGERS_HEADER, loggerModel) { @@ -157,7 +162,7 @@ protected boolean isAddButtonVisible() { @Override protected List> postSearch( List> items) { - return getLoggers(); + return items; } @Override @@ -212,19 +217,22 @@ protected List initSearchableItems( add(loggersMultivalueContainerListPanel); - ContainerWrapper containerWrap = containerValueWrapper.findContainerWrapper(new ItemPath(getModel().getObject().getPath(), LoggingConfigurationType.F_APPENDER)); - IModel> appenderModel = new AbstractReadOnlyModel>() { - - private static final long serialVersionUID = 1L; - - @Override - public ContainerWrapper getObject() { - return containerWrap; - } - - }; + + IModel> appenderModel = + new ContainerWrapperFromObjectWrapperModel(Model.of(getModelObject().getObjectWrapper()), new ItemPath(SystemConfigurationType.F_LOGGING, LoggingConfigurationType.F_APPENDER)); +// ContainerWrapper containerWrap = containerValueWrapper.findContainerWrapper(new ItemPath(getModel().getObject().getPath(), LoggingConfigurationType.F_APPENDER)); +// IModel> appenderModel = new AbstractReadOnlyModel>() { +// +// private static final long serialVersionUID = 1L; +// +// @Override +// public ContainerWrapper getObject() { +// return containerWrap; +// } +// +// }; - this.appenderModel = appenderModel; +// this.appenderModel = appenderModel; PrismContainerHeaderPanel appenderHeader = new PrismContainerHeaderPanel(ID_APPENDERS_HEADER, appenderModel) { @@ -245,7 +253,7 @@ protected boolean isAddButtonVisible() { @Override protected List> postSearch( List> items) { - return getAppenders(); + return items; } @Override @@ -290,17 +298,19 @@ protected List initSearchableItems( add(appendersMultivalueContainerListPanel); - ContainerWrapper auditWrapper = containerValueWrapper.findContainerWrapper(new ItemPath(getModel().getObject().getPath(), LoggingConfigurationType.F_AUDITING)); - IModel> auditModel = new AbstractReadOnlyModel>() { - - private static final long serialVersionUID = 1L; - - @Override - public ContainerWrapper getObject() { - return auditWrapper; - } - - }; + IModel> auditModel = + new ContainerWrapperFromObjectWrapperModel(Model.of(getModelObject().getObjectWrapper()), new ItemPath(SystemConfigurationType.F_LOGGING, LoggingConfigurationType.F_AUDITING)); +// ContainerWrapper auditWrapper = containerValueWrapper.findContainerWrapper(new ItemPath(getModel().getObject().getPath(), LoggingConfigurationType.F_AUDITING)); +// IModel> auditModel = new AbstractReadOnlyModel>() { +// +// private static final long serialVersionUID = 1L; +// +// @Override +// public ContainerWrapper getObject() { +// return auditWrapper; +// } +// +// }; @@ -320,15 +330,15 @@ private ItemVisibility getLoggingVisibility(ItemPath pathToCheck) { return ItemVisibility.HIDDEN; } - private List> getAppenders() { -// LOGGER.info("XXXXXXXXXXXXX values: " + appenderModel.getObject().getValues()); - return appenderModel.getObject().getValues(); - } - - private List> getLoggers() { -// LOGGER.info("XXXXXXXXXXXXX values: " + appenderModel.getObject().getValues()); - return loggerModel.getObject().getValues(); - } +// private List> getAppenders() { +//// LOGGER.info("XXXXXXXXXXXXX values: " + appenderModel.getObject().getValues()); +// return appenderModel.getObject().getValues(); +// } +// +// private List> getLoggers() { +//// LOGGER.info("XXXXXXXXXXXXX values: " + appenderModel.getObject().getValues()); +// return loggerModel.getObject().getValues(); +// } private List, String>> initLoggersBasicColumns() { List, String>> columns = new ArrayList<>(); @@ -386,8 +396,9 @@ private void loggerEditPerformed(AjaxRequestTarget target, IModel newObjectPolicy = appenderModel.getObject().getItem().createNewValue(); - ContainerValueWrapper newAppenderContainerWrapper = getAppendersMultivalueContainerListPanel().createNewItemContainerValueWrapper(newObjectPolicy, appenderModel); + MultivalueContainerListPanelWithDetailsPanel appenders = (MultivalueContainerListPanelWithDetailsPanel) get(ID_APPENDERS); + PrismContainerValue newObjectPolicy = appenders.getModelObject().getItem().createNewValue(); + ContainerValueWrapper newAppenderContainerWrapper = getAppendersMultivalueContainerListPanel().createNewItemContainerValueWrapper(newObjectPolicy, appenders.getModel()); newAppenderContainerWrapper.setShowEmpty(true, false); newAppenderContainerWrapper.computeStripes(); getAppendersMultivalueContainerListPanel().itemDetailsPerformed(target, Arrays.asList(newAppenderContainerWrapper)); From b1f9d661aba0c86e72cb0d15b405775e9914e85a Mon Sep 17 00:00:00 2001 From: skublik Date: Mon, 27 Aug 2018 10:29:07 +0200 Subject: [PATCH 03/16] fix for MultipleMultivalueContainer --- gui/admin-gui/pom.xml | 2 +- .../web/component/prism/ContainerValuePanel.java | 3 +-- .../component/prism/ContainerValueWrapper.java | 15 ++++++++++----- .../web/component/prism/PrismContainerPanel.java | 3 +-- .../prism/PrismContainerValueHeaderPanel.java | 4 ++-- 5 files changed, 15 insertions(+), 12 deletions(-) diff --git a/gui/admin-gui/pom.xml b/gui/admin-gui/pom.xml index 279ae1c3450..559156372b3 100644 --- a/gui/admin-gui/pom.xml +++ b/gui/admin-gui/pom.xml @@ -110,7 +110,7 @@ spring-boot-maven-plugin ${spring.boot.version} - + true false -Dserver.port=${server.port} -Dmidpoint.home=${midpoint.home} -Dmidpoint.schrodinger=${midpoint.schrodinger} -Djavax.net.ssl.trustStore=${javax.net.ssl.trustStore} -Djavax.net.ssl.trustStoreType=${javax.net.ssl.trustStoreType} diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/prism/ContainerValuePanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/prism/ContainerValuePanel.java index 43be3bdd6a1..13eb940462a 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/prism/ContainerValuePanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/prism/ContainerValuePanel.java @@ -235,7 +235,6 @@ protected void populateItem(final ListItem item) { PrismContainerPanel containerPanel = new PrismContainerPanel("container", (IModel>) item.getModel(), true, form, isPanalVisible, pageBase, false); containerPanel.setOutputMarkupId(true); item.add(containerPanel); - LOGGER.info("XXXXXXXX container: " + item.getModelObject().getItemDefinition()); item.add(new VisibleEnableBehaviour() { private static final long serialVersionUID = 1L; @@ -254,7 +253,7 @@ public boolean isVisible() { return false; } - if (model.getObject().containsMultipleMultivalueContainer() + if (model.getObject().containsMultipleMultivalueContainer(isPanalVisible) && item.getModelObject().getItemDefinition().isMultiValue() && CollectionUtils.isEmpty(item.getModelObject().getValues())) { return false; diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/prism/ContainerValueWrapper.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/prism/ContainerValueWrapper.java index 551c3df1c7a..d3f5e9be810 100755 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/prism/ContainerValueWrapper.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/prism/ContainerValueWrapper.java @@ -786,14 +786,21 @@ public ContainerValueWrapper findContainerValueWrapper(ItemPath path) { return null; } - public boolean containsMultipleMultivalueContainer(){ + public boolean containsMultipleMultivalueContainer(ItemVisibilityHandler isPanelVisible){ int count = 0; for (ItemWrapper wrapper : getItems()) { if (!(wrapper instanceof ContainerWrapper)) { continue; } if (!((ContainerWrapper) wrapper).getItemDefinition().isSingleValue()){ - count++; + if(isPanelVisible != null) { + if(!isPanelVisible.isVisible(wrapper).equals(ItemVisibility.HIDDEN) + || (isPanelVisible.isVisible(wrapper).equals(ItemVisibility.AUTO) && ((ContainerWrapper)wrapper).isVisible())) { + count++; + } + } else if(((ContainerWrapper)wrapper).isVisible()) { + count++; + } } if (count > 1) { @@ -820,10 +827,8 @@ public List getChildMultivalueContainersToBeAdded(ItemVisibilityHandler i if(isPanelVisible.isVisible(wrapper).equals(ItemVisibility.AUTO) && !((ContainerWrapper)wrapper).isVisible()) { continue; } - } else { - if(!((ContainerWrapper)wrapper).isVisible()) { + } else if(!((ContainerWrapper)wrapper).isVisible()) { continue; - } } if (!((ContainerWrapper) wrapper).getItemDefinition().isSingleValue()){ pathList.add(((ContainerWrapper) wrapper).getName()); diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/prism/PrismContainerPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/prism/PrismContainerPanel.java index d5bf2c04cb0..e40bbfcb839 100755 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/prism/PrismContainerPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/prism/PrismContainerPanel.java @@ -81,6 +81,7 @@ public PrismContainerPanel(String id, final IModel> model, b setExtendedForEmptyContainers(model); } + LOGGER.trace("Creating container panel for {}", model.getObject()); //TODO: visible behaviour?? @@ -93,8 +94,6 @@ public boolean isVisible() { } }); - LOGGER.info("XXXXXXXXXXX container visible : " + isPanelVisible(isPanelVisible, model)); - initLayout(model, form, isPanelVisible, showHeader); if(model.getObject() != null && model.getObject().getItemDefinition() != null && model.getObject().getItemDefinition().isMultiValue()) { diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/prism/PrismContainerValueHeaderPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/prism/PrismContainerValueHeaderPanel.java index a1f0dad51d7..8975372d0ec 100755 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/prism/PrismContainerValueHeaderPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/prism/PrismContainerValueHeaderPanel.java @@ -168,7 +168,7 @@ public void onClick(AjaxRequestTarget target) { @Override public boolean isVisible(){ - return getModelObject().containsMultipleMultivalueContainer() && getModelObject().getContainer() != null + return getModelObject().containsMultipleMultivalueContainer(isPanelVisible) && getModelObject().getContainer() != null && getModelObject().getDefinition().canModify() && !getModelObject().getChildMultivalueContainersToBeAdded(isPanelVisible).isEmpty() && buttonsVisibleBehaviour.isVisible(); @@ -184,7 +184,7 @@ && getModelObject().getDefinition().canModify() @Override public boolean isVisible(){ - return pathsList.size() > 1 && isChildContainersSelectorPanelVisible && buttonsVisibleBehaviour.isVisible(); + return getModelObject().containsMultipleMultivalueContainer(isPanelVisible) && isChildContainersSelectorPanelVisible && buttonsVisibleBehaviour.isVisible(); } }); childContainersSelectorPanel.setOutputMarkupId(true); From 73ec1965f35efb0d3ebe829d40b9cda7afc08c69 Mon Sep 17 00:00:00 2001 From: Katarina Valalikova Date: Mon, 27 Aug 2018 11:31:57 +0200 Subject: [PATCH 04/16] small code cleanup - loggin tab --- .../component/LoggingConfigurationTabPanel.java | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/impl/page/admin/configuration/component/LoggingConfigurationTabPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/impl/page/admin/configuration/component/LoggingConfigurationTabPanel.java index 5ce34ee8f32..80a54dd29ec 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/impl/page/admin/configuration/component/LoggingConfigurationTabPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/impl/page/admin/configuration/component/LoggingConfigurationTabPanel.java @@ -96,10 +96,6 @@ public class LoggingConfigurationTabPanel extends BasePanel> appenderModel = null; -// IModel> loggerModel = null; - public LoggingConfigurationTabPanel(String id, IModel> model) { super(id, model); } @@ -167,7 +163,7 @@ protected boolean enableActionNewObject() { @Override protected ObjectQuery createQuery() { - return LoggingConfigurationTabPanel.this.createAppendersQuery(); + return null; } @Override @@ -244,7 +240,7 @@ protected boolean enableActionNewObject() { @Override protected ObjectQuery createQuery() { - return LoggingConfigurationTabPanel.this.createAppendersQuery(); + return null; } @Override @@ -417,12 +413,7 @@ private MultivalueContainerListPanelWithDetailsPanel private MultivalueContainerListPanel getLoggersMultivalueContainerListPanel(){ return ((MultivalueContainerListPanel)get(ID_LOGGERS)); } - - private ObjectQuery createAppendersQuery() { - TypeFilter filter = TypeFilter.createType(AppenderConfigurationType.COMPLEX_TYPE, new AllFilter()); - return ObjectQuery.createObjectQuery(filter); - } - + private void initAppenderPaging() { getPageBase().getSessionStorage().getLoggingConfigurationTabAppenderTableStorage().setPaging(ObjectPaging.createPaging(0, (int) ((PageBase)getPage()).getItemsPerPage(UserProfileStorage.TableId.LOGGING_TAB_APPENDER_TABLE))); } From d05dc8f9d5d2c1ddd59ab523db6cc8d0909e2652 Mon Sep 17 00:00:00 2001 From: Katarina Valalikova Date: Mon, 27 Aug 2018 11:41:39 +0200 Subject: [PATCH 05/16] removing obsolete files --- .../objectdetails/AbstractRoleMainPanel.java | 54 +-- .../objectdetails/RoleMainPanel.java | 14 - .../roles/RoleGovernanceMemberPanel.java | 185 -------- .../web/page/admin/roles/RoleMemberPanel.html | 52 --- .../web/page/admin/roles/RoleMemberPanel.java | 421 ------------------ .../page/admin/roles/RoleMemberSearchDto.java | 93 ---- .../web/page/admin/services/PageService.java | 23 +- .../web/page/admin/users/PageOrgUnit.java | 6 - .../users/component/ServiceMemberPanel.java | 26 -- .../web/session/RoleMembersStorage.java | 78 ---- .../midpoint/web/session/SessionStorage.java | 7 - 11 files changed, 37 insertions(+), 922 deletions(-) delete mode 100644 gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/roles/RoleGovernanceMemberPanel.java delete mode 100644 gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/roles/RoleMemberPanel.html delete mode 100644 gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/roles/RoleMemberPanel.java delete mode 100644 gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/roles/RoleMemberSearchDto.java delete mode 100644 gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/users/component/ServiceMemberPanel.java delete mode 100644 gui/admin-gui/src/main/java/com/evolveum/midpoint/web/session/RoleMembersStorage.java diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/objectdetails/AbstractRoleMainPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/objectdetails/AbstractRoleMainPanel.java index 080fc21fd3c..957a49d80d8 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/objectdetails/AbstractRoleMainPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/objectdetails/AbstractRoleMainPanel.java @@ -15,7 +15,20 @@ */ package com.evolveum.midpoint.web.component.objectdetails; +import java.util.List; + +import org.apache.wicket.ajax.AjaxChannel; +import org.apache.wicket.ajax.AjaxRequestTarget; +import org.apache.wicket.ajax.attributes.AjaxRequestAttributes; +import org.apache.wicket.behavior.AttributeAppender; +import org.apache.wicket.extensions.markup.html.tabs.ITab; +import org.apache.wicket.markup.html.WebMarkupContainer; +import org.apache.wicket.markup.html.basic.Label; + import com.evolveum.midpoint.gui.api.ComponentConstants; +import com.evolveum.midpoint.gui.api.component.tabs.CountablePanelTab; +import com.evolveum.midpoint.gui.api.component.tabs.PanelTab; +import com.evolveum.midpoint.gui.api.model.LoadableModel; import com.evolveum.midpoint.gui.api.page.PageBase; import com.evolveum.midpoint.gui.api.util.FocusTabVisibleBehavior; import com.evolveum.midpoint.gui.api.util.WebComponentUtil; @@ -23,47 +36,38 @@ import com.evolveum.midpoint.prism.PrismObject; import com.evolveum.midpoint.prism.query.ObjectQuery; import com.evolveum.midpoint.prism.query.builder.QueryBuilder; -import com.evolveum.midpoint.schema.constants.RelationTypes; import com.evolveum.midpoint.schema.result.OperationResult; import com.evolveum.midpoint.task.api.Task; import com.evolveum.midpoint.util.logging.LoggingUtils; import com.evolveum.midpoint.util.logging.Trace; import com.evolveum.midpoint.util.logging.TraceManager; import com.evolveum.midpoint.web.component.AjaxButton; +import com.evolveum.midpoint.web.component.assignment.AssignmentEditorDto; import com.evolveum.midpoint.web.component.assignment.AssignmentsUtil; import com.evolveum.midpoint.web.component.breadcrumbs.Breadcrumb; import com.evolveum.midpoint.web.component.breadcrumbs.BreadcrumbPageClass; import com.evolveum.midpoint.web.component.breadcrumbs.BreadcrumbPageInstance; -import com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour; -import com.evolveum.midpoint.web.page.admin.users.dto.UserDtoStatus; -import com.evolveum.midpoint.web.page.self.PageAssignmentShoppingCart; -import com.evolveum.midpoint.web.page.self.PageAssignmentsList; -import com.evolveum.midpoint.web.session.RoleCatalogStorage; -import com.evolveum.midpoint.web.util.ExpressionUtil; -import org.apache.wicket.ajax.AjaxChannel; -import org.apache.wicket.ajax.AjaxRequestTarget; -import org.apache.wicket.ajax.attributes.AjaxRequestAttributes; -import org.apache.wicket.behavior.AttributeAppender; -import org.apache.wicket.markup.html.basic.Label; -import org.apache.wicket.model.Model; - -import com.evolveum.midpoint.gui.api.component.tabs.CountablePanelTab; -import com.evolveum.midpoint.gui.api.component.tabs.PanelTab; -import com.evolveum.midpoint.gui.api.model.LoadableModel; -import com.evolveum.midpoint.web.component.assignment.AssignmentEditorDto; import com.evolveum.midpoint.web.component.prism.ContainerStatus; import com.evolveum.midpoint.web.component.prism.ObjectWrapper; +import com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour; import com.evolveum.midpoint.web.page.admin.PageAdminFocus; import com.evolveum.midpoint.web.page.admin.PageAdminObjectDetails; import com.evolveum.midpoint.web.page.admin.roles.AbstractRoleMemberPanel; -import com.evolveum.midpoint.web.page.admin.roles.RoleGovernanceMemberPanel; import com.evolveum.midpoint.web.page.admin.users.dto.FocusSubwrapperDto; -import com.evolveum.midpoint.xml.ns._public.common.common_3.*; -import org.apache.wicket.extensions.markup.html.tabs.ITab; -import org.apache.wicket.markup.html.WebMarkupContainer; - -import java.util.ArrayList; -import java.util.List; +import com.evolveum.midpoint.web.page.admin.users.dto.UserDtoStatus; +import com.evolveum.midpoint.web.page.self.PageAssignmentShoppingCart; +import com.evolveum.midpoint.web.page.self.PageAssignmentsList; +import com.evolveum.midpoint.web.session.RoleCatalogStorage; +import com.evolveum.midpoint.web.util.ExpressionUtil; +import com.evolveum.midpoint.xml.ns._public.common.common_3.AbstractRoleType; +import com.evolveum.midpoint.xml.ns._public.common.common_3.AssignmentType; +import com.evolveum.midpoint.xml.ns._public.common.common_3.FocusType; +import com.evolveum.midpoint.xml.ns._public.common.common_3.OrgType; +import com.evolveum.midpoint.xml.ns._public.common.common_3.ResourceObjectAssociationType; +import com.evolveum.midpoint.xml.ns._public.common.common_3.RoleType; +import com.evolveum.midpoint.xml.ns._public.common.common_3.ServiceType; +import com.evolveum.midpoint.xml.ns._public.common.common_3.ShadowType; +import com.evolveum.midpoint.xml.ns._public.common.common_3.UserType; /** * @author semancik diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/objectdetails/RoleMainPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/objectdetails/RoleMainPanel.java index fdc781b50c9..249b17498ba 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/objectdetails/RoleMainPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/objectdetails/RoleMainPanel.java @@ -15,31 +15,17 @@ */ package com.evolveum.midpoint.web.component.objectdetails; -import java.util.ArrayList; import java.util.List; import javax.xml.namespace.QName; -import org.apache.wicket.extensions.markup.html.tabs.ITab; -import org.apache.wicket.markup.html.WebMarkupContainer; import org.apache.wicket.model.Model; -import com.evolveum.midpoint.gui.api.ComponentConstants; -import com.evolveum.midpoint.gui.api.GuiConstants; -import com.evolveum.midpoint.gui.api.component.tabs.PanelTab; import com.evolveum.midpoint.gui.api.model.LoadableModel; -import com.evolveum.midpoint.gui.api.util.FocusTabVisibleBehavior; import com.evolveum.midpoint.gui.api.util.WebComponentUtil; -import com.evolveum.midpoint.schema.constants.RelationTypes; -import com.evolveum.midpoint.schema.result.OperationResult; -import com.evolveum.midpoint.web.component.prism.ContainerStatus; import com.evolveum.midpoint.web.component.prism.ObjectWrapper; import com.evolveum.midpoint.web.page.admin.PageAdminFocus; -import com.evolveum.midpoint.web.page.admin.PageAdminObjectDetails; import com.evolveum.midpoint.web.page.admin.roles.AbstractRoleMemberPanel; -import com.evolveum.midpoint.web.page.admin.roles.RoleGovernanceMemberPanel; -import com.evolveum.midpoint.web.page.admin.roles.RoleMemberPanel; -import com.evolveum.midpoint.web.page.admin.services.PageService; import com.evolveum.midpoint.web.page.admin.users.dto.FocusSubwrapperDto; import com.evolveum.midpoint.web.security.GuiAuthorizationConstants; import com.evolveum.midpoint.web.session.UserProfileStorage.TableId; diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/roles/RoleGovernanceMemberPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/roles/RoleGovernanceMemberPanel.java deleted file mode 100644 index ae366a71003..00000000000 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/roles/RoleGovernanceMemberPanel.java +++ /dev/null @@ -1,185 +0,0 @@ -/* - * Copyright (c) 2010-2017 Evolveum - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.evolveum.midpoint.web.page.admin.roles; - -import java.io.Serializable; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.List; - -import javax.xml.namespace.QName; - -import com.evolveum.midpoint.schema.result.OperationResult; -import com.evolveum.midpoint.xml.ns._public.common.common_3.AbstractRoleType; -import com.evolveum.midpoint.xml.ns._public.common.common_3.AreaCategoryType; -import org.apache.wicket.ajax.AjaxRequestTarget; -import org.apache.wicket.model.IModel; - -import com.evolveum.midpoint.gui.api.util.WebComponentUtil; -import com.evolveum.midpoint.prism.query.ObjectQuery; -import com.evolveum.midpoint.schema.constants.RelationTypes; -import com.evolveum.midpoint.schema.constants.SchemaConstants; -import com.evolveum.midpoint.security.api.AuthorizationConstants; -import com.evolveum.midpoint.util.logging.Trace; -import com.evolveum.midpoint.util.logging.TraceManager; -import com.evolveum.midpoint.web.component.menu.cog.InlineMenuItem; -import com.evolveum.midpoint.web.page.admin.configuration.component.HeaderMenuAction; -import com.evolveum.midpoint.xml.ns._public.common.common_3.RoleType; - -/** - * Created by honchar. - */ -public class RoleGovernanceMemberPanel {// extends AbstractRoleMemberPanel { - - private static final long serialVersionUID = 1L; - - private static final Trace LOGGER = TraceManager.getTrace(RoleGovernanceMemberPanel.class); - private static final String DOT_CLASS = RoleGovernanceMemberPanel.class.getName() + "."; - -// public RoleGovernanceMemberPanel(String id, IModel model, List relations) { -// super(id, model, relations); -// } - -// @Override -// protected List createNewMemberInlineMenuItems() { -// List createMemberMenuItems = new ArrayList<>(); -// -// createMemberMenuItems.add(new InlineMenuItem(createStringResource("roleMemberPanel.menu.createApprover"), -// false, new HeaderMenuAction(this) { -// private static final long serialVersionUID = 1L; -// -// @Override -// public void onClick(AjaxRequestTarget target) { -// createFocusMemberPerformed(RelationTypes.APPROVER.getRelation(), target); -// } -// })); -// createMemberMenuItems.add(new InlineMenuItem(createStringResource("roleMemberPanel.menu.createOwner"), -// false, new HeaderMenuAction(this) { -// private static final long serialVersionUID = 1L; -// -// @Override -// public void onClick(AjaxRequestTarget target) { -// createFocusMemberPerformed(RelationTypes.OWNER.getRelation(), target); -// } -// })); -// createMemberMenuItems.add(new InlineMenuItem(createStringResource("TreeTablePanel.menu.createManager"), -// false, new HeaderMenuAction(this) { -// private static final long serialVersionUID = 1L; -// -// @Override -// public void onClick(AjaxRequestTarget target) { -// createFocusMemberPerformed(RelationTypes.MANAGER.getRelation(), target); -// } -// })); -// return createMemberMenuItems; -// } - -// @Override -// protected List createUnassignMemberInlineMenuItems() { -// List unassignMenuItems = new ArrayList<>(); -// unassignMenuItems -// .add(new InlineMenuItem(createStringResource("TreeTablePanel.menu.unassignApproversSelected"), -// false, new HeaderMenuAction(this) { -// private static final long serialVersionUID = 1L; -// -// @Override -// public void onClick(AjaxRequestTarget target) { -// removeMembersPerformed(QueryScope.SELECTED, Arrays.asList(SchemaConstants.ORG_APPROVER), target); -// } -// })); -// -// unassignMenuItems -// .add(new InlineMenuItem(createStringResource("TreeTablePanel.menu.unassignOwnersSelected"), -// false, new HeaderMenuAction(this) { -// private static final long serialVersionUID = 1L; -// -// @Override -// public void onClick(AjaxRequestTarget target) { -// removeMembersPerformed(QueryScope.SELECTED, Arrays.asList(SchemaConstants.ORG_OWNER), target); -// } -// })); -// -// unassignMenuItems -// .add(new InlineMenuItem(createStringResource("TreeTablePanel.menu.unassignManagersSelected"), -// false, new HeaderMenuAction(this) { -// private static final long serialVersionUID = 1L; -// -// @Override -// public void onClick(AjaxRequestTarget target) { -// removeMembersPerformed(QueryScope.SELECTED, Arrays.asList(SchemaConstants.ORG_MANAGER), target); -// } -// })); -// -// return unassignMenuItems; -// } - -// @Override -// protected List getAvailableRelationList(){ -// return WebComponentUtil.getCategoryRelationChoices(AreaCategoryType.GOVERNANCE, -// new OperationResult(OPERATION_RELATION_DEFINITION_TYPE), getPageBase()); } - -// @Override -// protected ObjectQuery createAllMemberQuery(Collection relations) { -// return super.createDirectMemberQuery(relations); -// } -// -// @Override -// protected boolean isAuthorizedToUnassignMembers(){ -// return WebComponentUtil.isAuthorized(AuthorizationConstants.AUTZ_UI_ADMIN_UNASSIGN_GOVERNANCE_ACTION_URI); -// } -// -// @Override -// protected boolean isAuthorizedToAssignMembers(){ -// return WebComponentUtil.isAuthorized(AuthorizationConstants.AUTZ_UI_ADMIN_ASSIGN_GOVERNANCE_ACTION_URI); -// } -// -// @Override -// protected boolean isAuthorizedToCreateMembers(){ -// return WebComponentUtil.isAuthorized(AuthorizationConstants.AUTZ_UI_ADMIN_ADD_GOVERNANCE_ACTION_URI); -// } - -// @Override -// protected List createMemberRecomputeInlineMenuItems() { -// return new ArrayList<>(); -// } - -// @Override -// protected boolean isGovernance(){ -// return true; -// } - -// static class RoleRelationSelectionDto implements Serializable { -// -// private static final long serialVersionUID = 1L; -// private boolean approver; -// private boolean owner; -// private boolean manager; -// -// public boolean isApprover() { -// return approver; -// } -// -// public boolean isManager() { -// return manager; -// } -// -// public boolean isOwner() { -// return owner; -// } -// } - -} diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/roles/RoleMemberPanel.html b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/roles/RoleMemberPanel.html deleted file mode 100644 index 4e54b9ffcfe..00000000000 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/roles/RoleMemberPanel.html +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - -
-
- -