Skip to content

Commit

Permalink
adding some styles for task creation popup
Browse files Browse the repository at this point in the history
  • Loading branch information
katkav committed Jul 11, 2023
1 parent 143847f commit c846493
Show file tree
Hide file tree
Showing 4 changed files with 40 additions and 105 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,14 @@
<!DOCTYPE html>
<html xmlns:wicket="http://wicket.apache.org">
<wicket:panel>
<div>
<div wicket:id="icon"></div>
<input name="myCheckbox" type="checkbox" wicket:id="check" data-bootstrap-switch />
<label wicket:id="label"></label>
<div class="m-3 d-flex flex-row gap-3">
<div class="d-flex flex-column">
<label wicket:id="label"></label>
<p wicket:id="description"></p>
</div>
<div class="ml-auto">
<input type="checkbox" wicket:id="check" data-bootstrap-switch />
</div>
</div>
</wicket:panel>
</html>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,106 +6,58 @@
*/
package com.evolveum.midpoint.gui.api.component.form;

import com.evolveum.midpoint.gui.api.util.GuiDisplayTypeUtil;
import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
import com.evolveum.midpoint.web.component.prism.InputPanel;
import com.evolveum.midpoint.web.component.util.EnableBehaviour;
import com.evolveum.midpoint.web.component.util.VisibleBehaviour;

import com.evolveum.midpoint.web.page.admin.configuration.component.EmptyOnBlurAjaxFormUpdatingBehaviour;
import com.evolveum.midpoint.web.page.admin.configuration.component.EmptyOnChangeAjaxFormUpdatingBehavior;
import com.evolveum.midpoint.xml.ns._public.common.common_3.DisplayType;

import org.apache.wicket.AttributeModifier;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.form.OnChangeAjaxBehavior;
import org.apache.wicket.ajax.markup.html.form.AjaxCheckBox;
import org.apache.wicket.markup.head.IHeaderResponse;
import org.apache.wicket.markup.head.OnDomReadyHeaderItem;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.form.CheckBox;
import org.apache.wicket.markup.html.form.FormComponent;
import org.apache.wicket.model.IModel;

import com.evolveum.midpoint.web.component.prism.InputPanel;
import com.evolveum.midpoint.web.component.util.EnableBehaviour;
import com.evolveum.midpoint.web.page.admin.configuration.component.EmptyOnChangeAjaxFormUpdatingBehavior;

import java.io.Serial;

public class ToggleCheckBoxPanel extends InputPanel {
private static final long serialVersionUID = 1L;
@Serial private static final long serialVersionUID = 1L;

private static final String ID_CHECK = "check";
private static final String ID_LABEL = "label";
private static final String ID_ICON = "icon";
private static final String ID_DESCRIPTION = "description";

private IModel<Boolean> checkboxModel;
private IModel<DisplayType> displayModel;
private final IModel<Boolean> checkboxModel;
private final IModel<String> labelModel;
private final IModel<String> descriptionModel;

public ToggleCheckBoxPanel(String id, IModel<Boolean> checkboxModel) {
this(id, checkboxModel, null);
}

public ToggleCheckBoxPanel(String id, IModel<Boolean> checkboxModel, IModel<DisplayType> displayModel) {
public ToggleCheckBoxPanel(String id,
IModel<Boolean> checkboxModel,
IModel<String> labelModel,
IModel<String> descriptionModel) {
super(id);
this.checkboxModel = checkboxModel;
this.displayModel = displayModel;
this.labelModel = labelModel;
this.descriptionModel = descriptionModel;
}

@Override
protected void onInitialize() {
super.onInitialize();

CheckBox check = new CheckBox(ID_CHECK, getCheckboxModel());
check.add(new OnChangeAjaxBehavior() {
@Override
protected void onUpdate(AjaxRequestTarget target) {
System.out.println("ToggleCheckBoxPanel.onUpdate");
}
});
// check.add(new EmptyOnChangeAjaxFormUpdatingBehavior());
CheckBox check = new CheckBox(ID_CHECK, checkboxModel);
check.add(new EmptyOnChangeAjaxFormUpdatingBehavior());
check.setOutputMarkupId(true);
check.add(new EnableBehaviour(this::isCheckboxEnabled));
add(check);

Label label = new Label(ID_LABEL, getLabelModel());
// label.add(AttributeModifier.replace("for", (IModel<String>) check::getMarkupId));
Label label = new Label(ID_LABEL, labelModel);
add(label);

WebMarkupContainer icon = new WebMarkupContainer(ID_ICON);
// icon.add(AttributeModifier.append("class", this::getIconModel));
icon.add(new VisibleBehaviour(() -> notNullModel(getIconModel())));
add(icon);

// add(new AttributeModifier("title", this::getTooltipModel));
}

private IModel<String> getLabelModel() {
return () -> {
if (displayModel == null) {
return null;
}
return WebComponentUtil.getTranslatedPolyString(GuiDisplayTypeUtil.getLabel(displayModel.getObject()));
};
}

private IModel<String> getTooltipModel() {
return () -> {
if (displayModel == null) {
return null;
}
return GuiDisplayTypeUtil.getHelp(displayModel.getObject());
};
}
Label description = new Label(ID_DESCRIPTION, descriptionModel);
add(description);

private IModel<String> getIconModel() {
return () -> {
if (displayModel == null) {
return null;
}
return GuiDisplayTypeUtil.getIconCssClass(displayModel.getObject());
};
}

private boolean notNullModel(IModel<?> model) {
return model != null && model.getObject() != null;
}

public CheckBox getPanelComponent() {
return (CheckBox) get(ID_CHECK);
Expand All @@ -124,10 +76,6 @@ protected boolean isCheckboxEnabled() {
return true;
}

public IModel<Boolean> getCheckboxModel() {
return checkboxModel;
}

public FormComponent getBaseFormComponent() {
return getPanelComponent();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
<html xmlns:wicket="http://wicket.apache.org">
<wicket:panel>
<div wicket:id="templateChoicePanel"></div>
<div wicket:id="simulate"></div>
<div class="card ml-5 mr-5 mt-4" wicket:id="simulate"></div>
<!-- <div wicket:id=""></div>-->

<wicket:fragment wicket:id="buttons">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,8 @@
import java.util.stream.Collectors;
import javax.xml.namespace.QName;

import com.evolveum.midpoint.gui.api.model.LoadableModel;
import com.evolveum.midpoint.gui.impl.page.self.requestAccess.CatalogItemDetailsPanel;
import com.evolveum.midpoint.web.component.AjaxIconButton;

import com.evolveum.midpoint.web.page.admin.resources.SynchronizationTaskFlavor;

import org.apache.wicket.Component;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.form.OnChangeAjaxBehavior;
import org.apache.wicket.ajax.markup.html.AjaxLink;
import org.apache.wicket.markup.html.panel.Fragment;
import org.apache.wicket.model.IModel;
Expand All @@ -28,12 +21,13 @@

import com.evolveum.midpoint.gui.api.component.BasePanel;
import com.evolveum.midpoint.gui.api.component.form.ToggleCheckBoxPanel;
import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
import com.evolveum.midpoint.gui.api.model.LoadableModel;
import com.evolveum.midpoint.gui.impl.page.admin.TemplateChoicePanel;
import com.evolveum.midpoint.model.api.authentication.CompiledGuiProfile;
import com.evolveum.midpoint.model.api.authentication.CompiledObjectCollectionView;
import com.evolveum.midpoint.web.component.AjaxIconButton;
import com.evolveum.midpoint.web.component.dialog.Popupable;
import com.evolveum.midpoint.xml.ns._public.common.common_3.DisplayType;
import com.evolveum.midpoint.web.page.admin.resources.SynchronizationTaskFlavor;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ResourceObjectTypeDefinitionType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.SystemObjectsType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.TaskType;
Expand All @@ -46,7 +40,6 @@ public class TaskCreationPopup extends BasePanel<ResourceObjectTypeDefinitionTyp
private static final String ID_BUTTONS = "buttons";
private static final String ID_CLOSE = "close";

// private IModel<Boolean> simulate;
private IModel<SynchronizationTaskFlavor> flavorModel;

private Fragment footer;
Expand All @@ -59,12 +52,6 @@ public TaskCreationPopup(String id, IModel<ResourceObjectTypeDefinitionType> mod
protected void onInitialize() {
super.onInitialize();
initLayout();
// simulate = new LoadableModel<>() {
// @Override
// protected Boolean load() {
// return false;
// }
// };
flavorModel = new LoadableModel<>() {
@Override
protected SynchronizationTaskFlavor load() {
Expand Down Expand Up @@ -101,16 +88,10 @@ protected QName getType() {
};
add(templateChoicePanel);

IModel<DisplayType> displayModel = () -> {
DisplayType displayType = new DisplayType();
displayType.setLabel(WebComponentUtil.createPolyFromOrigString("Simulation task"));
displayType.setTooltip(WebComponentUtil.createPolyFromOrigString("Create in simulation mode"));
return displayType;
};

ToggleCheckBoxPanel simulationPanel = new ToggleCheckBoxPanel(ID_SIMULATE,
Model.of(false), displayModel);

Model.of(false),
createStringResource("TaskCreationPopup.simulate.label"),
createStringResource("TaskCreationPopup.simulate.tooltip"));
simulationPanel.setOutputMarkupId(true);
add(simulationPanel);

Expand All @@ -119,7 +100,9 @@ protected QName getType() {
private void initFooter() {
footer = new Fragment(Popupable.ID_FOOTER, ID_BUTTONS, this);

AjaxIconButton createNewTask = new AjaxIconButton(ID_BUTTON_CREATE_NEW_TASK, () -> "fa fa-arrow", createStringResource("TaskCreationPopup.createNewTask")) {
AjaxIconButton createNewTask = new AjaxIconButton(ID_BUTTON_CREATE_NEW_TASK,
() -> "fa fa-arrow",
createStringResource("TaskCreationPopup.createNewTask")) {

@Override
public void onClick(AjaxRequestTarget target) {
Expand Down

0 comments on commit c846493

Please sign in to comment.