Skip to content

Commit

Permalink
Merge branch 'new-system-configuration-page' of https://github.com/Ev…
Browse files Browse the repository at this point in the history
…olveum/midpoint into new-system-configuration-page
  • Loading branch information
skublik committed Jul 19, 2018
2 parents 7240263 + 3b1af75 commit a8b5b3c
Show file tree
Hide file tree
Showing 4 changed files with 69 additions and 103 deletions.
Expand Up @@ -15,8 +15,7 @@
*/
package com.evolveum.midpoint.gui.api.component.togglebutton;

import org.apache.wicket.ajax.markup.html.AjaxLink;
import org.apache.wicket.ajax.markup.html.form.AjaxButton;
import org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;

Expand All @@ -26,7 +25,7 @@
*
* @author semancik
*/
public abstract class ToggleIconButton<T> extends AjaxButton{
public abstract class ToggleIconButton<T> extends AjaxSubmitLink {
private static final long serialVersionUID = 1L;

private String cssClassOff;
Expand All @@ -45,33 +44,34 @@ public ToggleIconButton(String id, String cssClassOff, String cssClassOn) {
}

public ToggleIconButton(String id, IModel model) {
super(id, model);
super(id);
initLayout();
}

public ToggleIconButton(String id, IModel model, String cssClassOff, String cssClassOn) {
super(id, model);
super(id);
this.cssClassOff = cssClassOff;
this.cssClassOn = cssClassOn;
initLayout();
}

private void initLayout() {
setEscapeModelStrings(false);
// setBody(new Model<String>(){
// private static final long serialVersionUID = 1L;
//
// @Override
// public String getObject() {
// if (isOn()) {
// return "<i class=\""+cssClassOn+"\"></i>";
// } else {
// return "<i class=\""+cssClassOff+"\"></i>";
// }
// }
// });
}

setBody(new Model<String>(){
private static final long serialVersionUID = 1L;

@Override
public String getObject() {
if (isOn()) {
return "<i class=\""+cssClassOn+"\"></i>";
} else {
return "<i class=\""+cssClassOff+"\"></i>";
}
}
});
}

public abstract boolean isOn();

}
Expand Up @@ -59,7 +59,8 @@ public ContainerValuePanel(String id, final IModel<ContainerValueWrapper<C>> mod
this.pageBase = pageBase;

add(new VisibleEnableBehaviour() {


private static final long serialVersionUID = 1L;
@Override
public boolean isVisible() {
return model.getObject().isVisible();
Expand All @@ -82,17 +83,6 @@ protected void onButtonClick(AjaxRequestTarget target) {
target.add(getPageBase().getFeedbackPanel());
}

@Override
protected void addNewContainerValuePerformed(AjaxRequestTarget ajaxRequestTarget){
super.addNewContainerValuePerformed(ajaxRequestTarget);
addOrReplaceProperties(model, form, isPanelVisible, true);
ajaxRequestTarget.add(ContainerValuePanel.this);
}


protected void reloadParentContainerPanel(AjaxRequestTarget target){
target.add(ContainerValuePanel.this);
}
};


Expand Down Expand Up @@ -139,9 +129,17 @@ protected void populateItem(final ListItem<IW> item) {
item.add(containerPanel);
containerPanel.add(new VisibleEnableBehaviour() {

private static final long serialVersionUID = 1L;

@Override
public boolean isVisible() {
return (model.getObject().containsMultipleMultivalueContainer() && item.getModelObject().getItemDefinition().isMultiValue() && CollectionUtils.isEmpty(item.getModelObject().getValues())) ? false : true;
if (model.getObject().containsMultipleMultivalueContainer()
&& item.getModelObject().getItemDefinition().isMultiValue()
&& CollectionUtils.isEmpty(item.getModelObject().getValues())) {
return false;
}

return containerPanel.isPanelVisible(isPanaleVisible, (IModel<ContainerWrapper<C>>) item.getModel());

}
});
Expand Down
Expand Up @@ -66,27 +66,31 @@ public PrismContainerPanel(String id, final IModel<ContainerWrapper<C>> model, b

@Override
public boolean isVisible() {
if (isPanelVisible != null && model.getObject() != null) {
ItemVisibility visible = isPanelVisible.isVisible(model.getObject());
if (visible != null) {
switch (visible) {
case VISIBLE:
return true;
case HIDDEN:
return false;
default:
// automatic, go on ...
}
}
}
return model.getObject() != null && model.getObject().isVisible();
return isPanelVisible(isPanelVisible, model);
}
});

initLayout(model, form, isPanelVisible, showHeader);

}

public boolean isPanelVisible(ItemVisibilityHandler isPanelVisible, IModel<ContainerWrapper<C>> model) {
if (isPanelVisible != null && model.getObject() != null) {
ItemVisibility visible = isPanelVisible.isVisible(model.getObject());
if (visible != null) {
switch (visible) {
case VISIBLE:
return true;
case HIDDEN:
return false;
default:
// automatic, go on ...
}
}
}
return model.getObject() != null && model.getObject().isVisible();
}

private void initLayout(final IModel<ContainerWrapper<C>> model, final Form form, ItemVisibilityHandler isPanelVisible, boolean showHeader) {
PrismContainerHeaderPanel<C> header = new PrismContainerHeaderPanel<C>(ID_HEADER, model) {
private static final long serialVersionUID = 1L;
Expand Down
Expand Up @@ -9,6 +9,7 @@
import org.apache.commons.lang.StringUtils;
import org.apache.wicket.AttributeModifier;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.markup.html.AjaxLink;
import org.apache.wicket.behavior.AttributeAppender;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
Expand Down Expand Up @@ -102,6 +103,7 @@ public Object getObject() {
}));
showMetadataButton.add(new VisibleEnableBehaviour() {

private static final long serialVersionUID = 1L;
@Override
public boolean isVisible() {
for (ItemWrapper wrapper : getModelObject().getItems()) {
Expand Down Expand Up @@ -163,24 +165,13 @@ public boolean isOn() {
sortPropertiesButton.add(buttonsVisibleBehaviour);
add(sortPropertiesButton);

ToggleIconButton addChildContainerButton = new ToggleIconButton(ID_ADD_CHILD_CONTAINER,
GuiStyleConstants.CLASS_PLUS_CIRCLE_SUCCESS, GuiStyleConstants.CLASS_PLUS_CIRCLE_SUCCESS) {
AjaxLink addChildContainerButton = new AjaxLink(ID_ADD_CHILD_CONTAINER) {
private static final long serialVersionUID = 1L;

@Override
protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
@Override
public void onClick(AjaxRequestTarget target) {
isChildContainersSelectorPanelVisible = true;
target.add(PrismContainerValueHeaderPanel.this);
}

@Override
protected void onError(AjaxRequestTarget target, Form<?> form) {
target.add(getPageBase().getFeedbackPanel());
}

@Override
public boolean isOn() {
return true;
}
};
addChildContainerButton.add(new VisibleEnableBehaviour(){
Expand All @@ -195,39 +186,28 @@ public boolean isVisible(){
});
add(addChildContainerButton);

List<QName> pathsList = getModelObject().getChildMultivalueContainersToBeAdded();

WebMarkupContainer childContainersSelectorPanel = new WebMarkupContainer(ID_CHILD_CONTAINERS_SELECTOR_PANEL);
childContainersSelectorPanel.add(new VisibleEnableBehaviour(){
private static final long serialVersionUID = 1L;

@Override
public boolean isVisible(){
return isChildContainersSelectorPanelVisible;
return pathsList.size() > 1 && isChildContainersSelectorPanelVisible;
}
});
childContainersSelectorPanel.setOutputMarkupId(true);
add(childContainersSelectorPanel);
List<QName> pathsList = getModelObject().getChildMultivalueContainersToBeAdded();
// if(pathsList.size() != 1) {
DropDownChoicePanel multivalueContainersList = new DropDownChoicePanel<>(ID_CHILD_CONTAINERS_LIST,
Model.of(pathsList.size() > 0 ? pathsList.get(0) : null), Model.ofList(pathsList),
new QNameIChoiceRenderer(getModelObject().getDefinition().getCompileTimeClass().getSimpleName()));
multivalueContainersList.setOutputMarkupId(true);
multivalueContainersList.getBaseFormComponent().add(new EmptyOnBlurAjaxFormUpdatingBehaviour());
childContainersSelectorPanel.add(multivalueContainersList);
multivalueContainersList.add(new VisibleEnableBehaviour() {

@Override
public boolean isVisible() {
return pathsList.size() > 1;
}
});
// } else {
// Label containerName = new Label(ID_CHILD_CONTAINERS_LIST, getPathDisplayName(pathsList.get(0)));
//// TextField<String> containerName = new TextField<String>(ID_CHILD_CONTAINERS_LIST, Model.of(getPathDisplayName(pathsList.get(0))));
// childContainersSelectorPanel.add(containerName);
// }

DropDownChoicePanel multivalueContainersList = new DropDownChoicePanel<>(ID_CHILD_CONTAINERS_LIST,
Model.of(pathsList.size() > 0 ? pathsList.get(0) : null), Model.ofList(pathsList),
new QNameIChoiceRenderer(getModelObject().getDefinition().getCompileTimeClass().getSimpleName()));
multivalueContainersList.setOutputMarkupId(true);
multivalueContainersList.getBaseFormComponent().add(new EmptyOnBlurAjaxFormUpdatingBehaviour());
childContainersSelectorPanel.add(multivalueContainersList);
childContainersSelectorPanel.add(new AjaxButton(ID_ADD_BUTTON, createStringResource("prismValuePanel.add")) {

private static final long serialVersionUID = 1L;

@Override
Expand All @@ -236,29 +216,14 @@ public void onClick(AjaxRequestTarget ajaxRequestTarget) {
}
});




ToggleIconButton removeContainerButton = new ToggleIconButton(ID_REMOVE_CONTAINER,
GuiStyleConstants.CLASS_MINUS_CIRCLE_DANGER, GuiStyleConstants.CLASS_MINUS_CIRCLE_DANGER) {
AjaxLink removeContainerButton = new AjaxLink(ID_REMOVE_CONTAINER) {
private static final long serialVersionUID = 1L;

@Override
protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
public void onClick(AjaxRequestTarget target) {
ContainerValueWrapper containerValueWrapper = PrismContainerValueHeaderPanel.this.getModelObject();
containerValueWrapper.setStatus(ValueStatus.DELETED);
target.add(PrismContainerValueHeaderPanel.this);
PrismContainerValueHeaderPanel.this.reloadParentContainerPanel(target);
}

@Override
protected void onError(AjaxRequestTarget target, Form<?> form) {
target.add(getPageBase().getFeedbackPanel());
}

@Override
public boolean isOn() {
return true;
onButtonClick(target);
}
};
removeContainerButton.add(new VisibleEnableBehaviour(){
Expand All @@ -285,6 +250,7 @@ protected void initHeaderLabel(){
}
StringResourceModel headerLabelModel = createStringResource(displayName);
AjaxButton labelComponent = new AjaxButton(ID_LABEL, headerLabelModel) {
private static final long serialVersionUID = 1L;
@Override
public void onClick(AjaxRequestTarget target) {
onShowEmptyClick(target);
Expand All @@ -296,14 +262,12 @@ public void onClick(AjaxRequestTarget target) {

}

protected void reloadParentContainerPanel(AjaxRequestTarget target){
}

protected void addNewContainerValuePerformed(AjaxRequestTarget ajaxRequestTarget){
isChildContainersSelectorPanelVisible = false;
getModelObject().setShowEmpty(true, false);
createNewContainerValue(getModelObject(), getSelectedContainerQName());
// ajaxRequestTarget.add(getChildContainersSelectorPanel().getParent());
onButtonClick(ajaxRequestTarget);
ajaxRequestTarget.add(getChildContainersSelectorPanel().getParent());
}

private QName getSelectedContainerQName(){
Expand Down

0 comments on commit a8b5b3c

Please sign in to comment.