Skip to content

Commit

Permalink
MID-7442 more sysconfig ui, endless
Browse files Browse the repository at this point in the history
  • Loading branch information
1azyman committed Feb 21, 2022
1 parent fcb9e8a commit 0e53561
Show file tree
Hide file tree
Showing 9 changed files with 534 additions and 19 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,6 @@

package com.evolveum.midpoint.gui.impl.page.admin.systemconfiguration.component;

import java.util.Arrays;
import java.util.List;

import com.evolveum.midpoint.xml.ns._public.common.common_3.*;

import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn;
import org.apache.wicket.markup.html.list.ListItem;
import org.apache.wicket.model.IModel;

import com.evolveum.midpoint.gui.api.GuiStyleConstants;
import com.evolveum.midpoint.gui.api.prism.wrapper.PrismContainerValueWrapper;
import com.evolveum.midpoint.gui.api.prism.wrapper.PrismContainerWrapper;
Expand All @@ -33,6 +23,18 @@
import com.evolveum.midpoint.web.component.data.column.CheckBoxHeaderColumn;
import com.evolveum.midpoint.web.model.PrismContainerWrapperModel;
import com.evolveum.midpoint.web.session.UserProfileStorage;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ClassLoggerConfigurationType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ContainerPanelConfigurationType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.LoggingConfigurationType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.SystemConfigurationType;

import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn;
import org.apache.wicket.markup.html.list.ListItem;
import org.apache.wicket.model.IModel;

import java.util.Arrays;
import java.util.List;

/**
* Created by Viliam Repan (lazyman).
Expand Down Expand Up @@ -78,13 +80,7 @@ protected void onClick(AjaxRequestTarget target, IModel<PrismContainerValueWrapp
}
},
new PrismPropertyWrapperColumn<>(getContainerModel(), ClassLoggerConfigurationType.F_LEVEL,
AbstractItemWrapperColumn.ColumnType.VALUE, getPageBase()) {

@Override
protected void onClick(AjaxRequestTarget target, IModel<PrismContainerValueWrapper<ClassLoggerConfigurationType>> model) {
ClassLoggersContentPanel.this.itemDetailsPerformed(target, model);
}
}
AbstractItemWrapperColumn.ColumnType.VALUE, getPageBase())
);
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
/*
* Copyright (c) 2022 Evolveum and contributors
*
* This work is dual-licensed under the Apache License 2.0
* and European Union Public License. See LICENSE file for details.
*/

package com.evolveum.midpoint.gui.impl.page.admin.systemconfiguration.component;

import com.evolveum.midpoint.gui.api.GuiStyleConstants;
import com.evolveum.midpoint.gui.api.prism.wrapper.PrismContainerValueWrapper;
import com.evolveum.midpoint.gui.api.prism.wrapper.PrismContainerWrapper;
import com.evolveum.midpoint.gui.impl.component.MultivalueContainerDetailsPanel;
import com.evolveum.midpoint.gui.impl.component.MultivalueContainerListPanelWithDetailsPanel;
import com.evolveum.midpoint.gui.impl.component.data.column.AbstractItemWrapperColumn;
import com.evolveum.midpoint.gui.impl.component.data.column.PrismPropertyWrapperColumn;
import com.evolveum.midpoint.gui.impl.page.admin.assignmentholder.AssignmentHolderDetailsModel;
import com.evolveum.midpoint.prism.path.ItemPath;
import com.evolveum.midpoint.web.application.Counter;
import com.evolveum.midpoint.web.application.PanelDisplay;
import com.evolveum.midpoint.web.application.PanelInstance;
import com.evolveum.midpoint.web.application.PanelType;
import com.evolveum.midpoint.web.component.data.column.CheckBoxHeaderColumn;
import com.evolveum.midpoint.web.model.PrismContainerWrapperModel;
import com.evolveum.midpoint.web.session.UserProfileStorage;
import com.evolveum.midpoint.xml.ns._public.common.common_3.*;

import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn;
import org.apache.wicket.markup.html.list.ListItem;
import org.apache.wicket.model.IModel;

import java.util.Arrays;
import java.util.List;

/**
* Created by Viliam Repan (lazyman).
*/
@PanelType(name = "objectDetailsPanel")
@PanelInstance(
identifier = "objectDetailsPanel",
applicableForType = AdminGuiConfigurationType.class,
display = @PanelDisplay(
label = "GuiObjectDetailsContentPanel.label",
icon = GuiStyleConstants.CLASS_CIRCLE_FULL,
order = 50
)
)
@Counter(provider = ClassLoggersMenuLinkCounter.class)
public class GuiObjectDetailsContentPanel extends MultivalueContainerListPanelWithDetailsPanel<GuiObjectDetailsPageType> {

private IModel<PrismContainerWrapper<GuiObjectDetailsPageType>> model;

public GuiObjectDetailsContentPanel(String id, AssignmentHolderDetailsModel model, ContainerPanelConfigurationType configurationType) {
super(id, GuiObjectDetailsPageType.class, configurationType);

this.model = PrismContainerWrapperModel.fromContainerWrapper(model.getObjectWrapperModel(), ItemPath.create(
SystemConfigurationType.F_ADMIN_GUI_CONFIGURATION,
GuiObjectDetailsSetType.F_OBJECT_DETAILS_PAGE
));
}

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

@Override
protected List<IColumn<PrismContainerValueWrapper<GuiObjectDetailsPageType>, String>> createDefaultColumns() {
return Arrays.asList(
new PrismPropertyWrapperColumn<>(getContainerModel(), GuiObjectDetailsPageType.F_TYPE,
AbstractItemWrapperColumn.ColumnType.LINK, getPageBase()) {

@Override
protected void onClick(AjaxRequestTarget target, IModel<PrismContainerValueWrapper<GuiObjectDetailsPageType>> model) {
GuiObjectDetailsContentPanel.this.itemDetailsPerformed(target, model);
}
},
new PrismPropertyWrapperColumn<>(getContainerModel(), GuiObjectDetailsPageType.F_ROLE_RELATION,
AbstractItemWrapperColumn.ColumnType.VALUE, getPageBase())
);
}

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

@Override
protected IModel<PrismContainerWrapper<GuiObjectDetailsPageType>> getContainerModel() {
return model;
}

@Override
protected MultivalueContainerDetailsPanel<GuiObjectDetailsPageType> getMultivalueContainerDetailsPanel(
ListItem<PrismContainerValueWrapper<GuiObjectDetailsPageType>> item) {

return new GuiObjectDetailsPanel(MultivalueContainerListPanelWithDetailsPanel.ID_ITEM_DETAILS, item.getModel(), true);
}

@Override
protected UserProfileStorage.TableId getTableId() {
return UserProfileStorage.TableId.PAGE_MESSAGE_TEMPLATE_LOCALIZED_CONTENT_PANEL; // todo fix
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
/*
* Copyright (c) 2022 Evolveum and contributors
*
* This work is dual-licensed under the Apache License 2.0
* and European Union Public License. See LICENSE file for details.
*/

package com.evolveum.midpoint.gui.impl.page.admin.systemconfiguration.component;

import com.evolveum.midpoint.gui.api.component.DisplayNamePanel;
import com.evolveum.midpoint.gui.api.prism.wrapper.PrismContainerValueWrapper;
import com.evolveum.midpoint.gui.impl.component.MultivalueContainerDetailsPanel;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ContainerPanelConfigurationType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.GuiObjectDetailsPageType;

import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;

/**
* Created by Viliam Repan (lazyman).
*/
public class GuiObjectDetailsPanel extends MultivalueContainerDetailsPanel<GuiObjectDetailsPageType> {

public GuiObjectDetailsPanel(String id, IModel<PrismContainerValueWrapper<GuiObjectDetailsPageType>> model, boolean addDefaultPanel) {
super(id, model, addDefaultPanel);
}

public GuiObjectDetailsPanel(String id, IModel<PrismContainerValueWrapper<GuiObjectDetailsPageType>> model, boolean addDefaultPanel, ContainerPanelConfigurationType config) {
super(id, model, addDefaultPanel, config);
}

@Override
protected DisplayNamePanel<GuiObjectDetailsPageType> createDisplayNamePanel(String displayNamePanelId) {
// so far no display name panel needed
DisplayNamePanel d = new DisplayNamePanel<>(displayNamePanelId, Model.of(getModelObject().getRealValue())) {

@Override
protected IModel<String> createHeaderModel() {
return createStringResource("GuiObjectDetailsPageType.label");
}

@Override
protected IModel<String> getDescriptionLabelModel() {
return () -> getModelObject().getType().getLocalPart();
}

@Override
protected WebMarkupContainer createTypeImagePanel(String idTypeImage) {
WebMarkupContainer c = new WebMarkupContainer(idTypeImage);
c.setVisible(false);
return c;
}
};

return d;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
/*
* Copyright (c) 2022 Evolveum and contributors
*
* This work is dual-licensed under the Apache License 2.0
* and European Union Public License. See LICENSE file for details.
*/

package com.evolveum.midpoint.gui.impl.page.admin.systemconfiguration.component;

import com.evolveum.midpoint.gui.api.GuiStyleConstants;
import com.evolveum.midpoint.gui.api.prism.wrapper.PrismContainerValueWrapper;
import com.evolveum.midpoint.gui.api.prism.wrapper.PrismContainerWrapper;
import com.evolveum.midpoint.gui.impl.component.MultivalueContainerDetailsPanel;
import com.evolveum.midpoint.gui.impl.component.MultivalueContainerListPanelWithDetailsPanel;
import com.evolveum.midpoint.gui.impl.component.data.column.AbstractItemWrapperColumn;
import com.evolveum.midpoint.gui.impl.component.data.column.PrismPropertyWrapperColumn;
import com.evolveum.midpoint.gui.impl.page.admin.assignmentholder.AssignmentHolderDetailsModel;
import com.evolveum.midpoint.prism.path.ItemPath;
import com.evolveum.midpoint.web.application.Counter;
import com.evolveum.midpoint.web.application.PanelDisplay;
import com.evolveum.midpoint.web.application.PanelInstance;
import com.evolveum.midpoint.web.application.PanelType;
import com.evolveum.midpoint.web.component.data.column.CheckBoxHeaderColumn;
import com.evolveum.midpoint.web.model.PrismContainerWrapperModel;
import com.evolveum.midpoint.web.session.UserProfileStorage;
import com.evolveum.midpoint.xml.ns._public.common.common_3.*;

import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn;
import org.apache.wicket.markup.html.list.ListItem;
import org.apache.wicket.model.IModel;

import java.util.Arrays;
import java.util.List;

/**
* Created by Viliam Repan (lazyman).
*/
@PanelType(name = "objectCollectionViewsPanel")
@PanelInstance(
identifier = "objectCollectionViewsPanel",
applicableForType = AdminGuiConfigurationType.class,
display = @PanelDisplay(
label = "ObjectCollectionViewsContentPanel.label",
icon = GuiStyleConstants.CLASS_CIRCLE_FULL,
order = 40
)
)
@Counter(provider = ClassLoggersMenuLinkCounter.class)
public class ObjectCollectionViewsContentPanel extends MultivalueContainerListPanelWithDetailsPanel<GuiObjectListViewType> {

private IModel<PrismContainerWrapper<GuiObjectListViewType>> model;

public ObjectCollectionViewsContentPanel(String id, AssignmentHolderDetailsModel model, ContainerPanelConfigurationType configurationType) {
super(id, GuiObjectListViewType.class, configurationType);

this.model = PrismContainerWrapperModel.fromContainerWrapper(model.getObjectWrapperModel(), ItemPath.create(
SystemConfigurationType.F_ADMIN_GUI_CONFIGURATION,
GuiObjectListViewsType.F_OBJECT_COLLECTION_VIEW
));
}

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

@Override
protected List<IColumn<PrismContainerValueWrapper<GuiObjectListViewType>, String>> createDefaultColumns() {
return Arrays.asList(
new PrismPropertyWrapperColumn<>(getContainerModel(), GuiObjectListViewType.F_IDENTIFIER,
AbstractItemWrapperColumn.ColumnType.LINK, getPageBase()) {

@Override
protected void onClick(AjaxRequestTarget target, IModel<PrismContainerValueWrapper<GuiObjectListViewType>> model) {
ObjectCollectionViewsContentPanel.this.itemDetailsPerformed(target, model);
}
},
new PrismPropertyWrapperColumn<>(getContainerModel(), GuiObjectListViewType.F_TYPE,
AbstractItemWrapperColumn.ColumnType.VALUE, getPageBase()),
new PrismPropertyWrapperColumn<>(getContainerModel(), GuiObjectListViewType.F_DISPLAY_ORDER,
AbstractItemWrapperColumn.ColumnType.VALUE, getPageBase())
);
}

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

@Override
protected IModel<PrismContainerWrapper<GuiObjectListViewType>> getContainerModel() {
return model;
}

@Override
protected MultivalueContainerDetailsPanel<GuiObjectListViewType> getMultivalueContainerDetailsPanel(
ListItem<PrismContainerValueWrapper<GuiObjectListViewType>> item) {

return new ObjectCollectionViewsDetailsPanel(MultivalueContainerListPanelWithDetailsPanel.ID_ITEM_DETAILS, item.getModel(), true);
}

@Override
protected UserProfileStorage.TableId getTableId() {
return UserProfileStorage.TableId.PAGE_MESSAGE_TEMPLATE_LOCALIZED_CONTENT_PANEL; // todo fix
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
/*
* Copyright (c) 2022 Evolveum and contributors
*
* This work is dual-licensed under the Apache License 2.0
* and European Union Public License. See LICENSE file for details.
*/

package com.evolveum.midpoint.gui.impl.page.admin.systemconfiguration.component;

import com.evolveum.midpoint.gui.api.component.DisplayNamePanel;
import com.evolveum.midpoint.gui.api.prism.wrapper.PrismContainerValueWrapper;
import com.evolveum.midpoint.gui.impl.component.MultivalueContainerDetailsPanel;
import com.evolveum.midpoint.xml.ns._public.common.common_3.GuiObjectListViewType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ContainerPanelConfigurationType;

import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;

/**
* Created by Viliam Repan (lazyman).
*/
public class ObjectCollectionViewsDetailsPanel extends MultivalueContainerDetailsPanel<GuiObjectListViewType> {

public ObjectCollectionViewsDetailsPanel(String id, IModel<PrismContainerValueWrapper<GuiObjectListViewType>> model, boolean addDefaultPanel) {
super(id, model, addDefaultPanel);
}

public ObjectCollectionViewsDetailsPanel(String id, IModel<PrismContainerValueWrapper<GuiObjectListViewType>> model, boolean addDefaultPanel, ContainerPanelConfigurationType config) {
super(id, model, addDefaultPanel, config);
}

@Override
protected DisplayNamePanel<GuiObjectListViewType> createDisplayNamePanel(String displayNamePanelId) {
// so far no display name panel needed
DisplayNamePanel d = new DisplayNamePanel<>(displayNamePanelId, Model.of(getModelObject().getRealValue())) {

@Override
protected IModel<String> createHeaderModel() {
return createStringResource("GuiObjectListViewType.label");
}

@Override
protected IModel<String> getDescriptionLabelModel() {
return () -> getModelObject().getIdentifier();
}

@Override
protected WebMarkupContainer createTypeImagePanel(String idTypeImage) {
WebMarkupContainer c = new WebMarkupContainer(idTypeImage);
c.setVisible(false);
return c;
}
};

return d;
}
}

0 comments on commit 0e53561

Please sign in to comment.