Skip to content

Commit

Permalink
MID-4315, adding display names, modifying of prifiling configuration …
Browse files Browse the repository at this point in the history
…page and other small changes
  • Loading branch information
skublik committed Sep 6, 2018
1 parent 1b86178 commit 68975db
Show file tree
Hide file tree
Showing 35 changed files with 690 additions and 145 deletions.
Expand Up @@ -87,6 +87,7 @@
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.form.*;
import org.apache.wicket.markup.html.panel.Panel;
import org.apache.wicket.markup.repeater.data.IDataProvider;
import org.apache.wicket.model.*;
import org.apache.wicket.request.IRequestHandler;
Expand All @@ -105,6 +106,7 @@
import com.evolveum.midpoint.gui.api.page.PageBase;
import com.evolveum.midpoint.prism.Containerable;
import com.evolveum.midpoint.prism.DefaultReferencableImpl;
import com.evolveum.midpoint.prism.ItemDefinition;
import com.evolveum.midpoint.prism.Objectable;
import com.evolveum.midpoint.prism.PrismContainer;
import com.evolveum.midpoint.prism.PrismContainerValue;
Expand Down Expand Up @@ -1119,7 +1121,7 @@ public static <C extends Containerable> String getDisplayName(PrismContainerValu
String displayName = (exclusionConstraint.getName() != null ? exclusionConstraint.getName() :
exclusionConstraint.asPrismContainerValue().getParent().getPath().last()) + " - "
+ StringUtils.defaultIfEmpty(getName(exclusionConstraint.getTargetRef()), "");
return StringUtils.isNotEmpty(displayName) ? displayName : "Not defined exclusion name";
return StringUtils.isNotEmpty(displayName) && StringUtils.isNotEmpty(getName(exclusionConstraint.getTargetRef())) ? displayName : "ExclusionPolicyConstraintType.details";
}
if (prismContainerValue.canRepresent(AbstractPolicyConstraintType.class)){
AbstractPolicyConstraintType constraint = (AbstractPolicyConstraintType) prismContainerValue.asContainerable();
Expand Down Expand Up @@ -2707,4 +2709,21 @@ private Map<QName, Object> prepareExtensionValues(Collection<String> oids) throw
});
return menuItems;
}

public static <IW extends ItemWrapper> String loadHelpText(IModel<IW> model, Panel panel) {
if(model == null || model.getObject() == null) {
return null;
}
IW property = (IW) model.getObject();
ItemDefinition def = property.getItemDefinition();
String doc = def.getHelp();
if (StringUtils.isEmpty(doc)) {
doc = def.getDocumentation();
if (StringUtils.isEmpty(doc)) {
return null;
}
}

return PageBase.createStringResourceStatic(panel, doc).getString();
}
}
Expand Up @@ -29,10 +29,12 @@
import com.evolveum.midpoint.web.component.prism.ContainerStatus;
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.ItemWrapper;
import com.evolveum.midpoint.web.component.prism.ObjectWrapper;
import com.evolveum.midpoint.web.component.prism.ObjectWrapperFactory;
import com.evolveum.midpoint.web.component.prism.PropertyOrReferenceWrapper;
import com.evolveum.midpoint.web.component.prism.ValueStatus;
import com.evolveum.midpoint.web.page.error.PageError;
import com.evolveum.midpoint.web.page.login.PageLogin;
import com.evolveum.midpoint.web.security.MidPointApplication;
Expand Down Expand Up @@ -66,6 +68,7 @@
import org.apache.wicket.RestartResponseException;
import org.apache.wicket.Session;
import org.apache.wicket.ThreadContext;
import org.apache.wicket.model.IModel;
import org.jetbrains.annotations.Nullable;

import static com.evolveum.midpoint.schema.GetOperationOptions.createNoFetchCollection;
Expand Down Expand Up @@ -848,4 +851,16 @@ public static <C extends Containerable> boolean isContainerValueWrapperEmpty(Con
}
return true;
}

public static <C extends Containerable> ContainerValueWrapper<C> createNewItemContainerValueWrapper(PageBase pageBase,
IModel<ContainerWrapper<C>> model) {
ContainerWrapperFactory factory = new ContainerWrapperFactory(pageBase);
Task task = pageBase.createSimpleTask("Creating new object policy");
PrismContainerValue<C> newItem = model.getObject().getItem().createNewValue();
ContainerValueWrapper<C> valueWrapper = factory.createContainerValueWrapper(model.getObject(), newItem,
model.getObject().getObjectStatus(), ValueStatus.ADDED, model.getObject().getPath(), task);
valueWrapper.setShowEmpty(true, true);
model.getObject().getValues().add(valueWrapper);
return valueWrapper;
}
}
Expand Up @@ -59,21 +59,25 @@ protected void initLayout(){
displayNamePanel.setOutputMarkupId(true);
add(displayNamePanel);

getBasicContainerValuePanel(ID_BASIC_PANEL);
addBasicContainerValuePanel(ID_BASIC_PANEL);
add(getSpecificContainers(ID_SPECIFIC_CONTAINERS_PANEL));
}

protected WebMarkupContainer getSpecificContainers(String contentAreaId) {
return new WebMarkupContainer(contentAreaId);
}

protected void getBasicContainerValuePanel(String idPanel){
protected void addBasicContainerValuePanel(String idPanel){
add(getBasicContainerValuePanel(idPanel));
}

private ContainerValuePanel getBasicContainerValuePanel(String idPanel){
Form form = new Form<>("form");
ItemPath itemPath = getModelObject().getPath();
IModel<ContainerValueWrapper<C>> model = getModel();
model.getObject().getContainer().setShowOnTopLevel(true);
add(new ContainerValuePanel<C>(idPanel, getModel(), true, form,
itemWrapper -> getBasicTabVisibity(itemWrapper, itemPath), getPageBase()));
return new ContainerValuePanel<C>(idPanel, getModel(), true, form,
itemWrapper -> getBasicTabVisibity(itemWrapper, itemPath), getPageBase());
}

protected ItemVisibility getBasicTabVisibity(ItemWrapper itemWrapper, ItemPath parentPath) {
Expand Down
Expand Up @@ -25,9 +25,11 @@
</div>

<div class="col-md-10 prism-property-value">
<div wicket:id="valueWrapper">
<div class="row">
<div wicket:id="valueWrapper">
<div wicket:id="value"/>
<span class="text-danger" wicket:id="feedback"/>
</div>
</div>
</div>
</wicket:panel>
Expand Down
Expand Up @@ -18,10 +18,42 @@
<html xmlns:wicket="http://wicket.apache.org">
<wicket:panel>
<div wicket:id="logging"/>
<div wicket:id="loggersHeader"/>
<div wicket:id="loggers"/>
<div wicket:id="appendersHeader"/>
<div wicket:id="appenders"/>
<div wicket:id="audit"/>

<div class="prism-properties">
<div class="top-level-prism-container">
<div class="row prism-property">
<div class="container-fluid">
<div class="prism-header">
<div class="row">
<span class="prism-title"style="cursor: pointer;"><wicket:message key="LoggingConfigurationType.classLogger"/></span>
</div>
</div>
<div class="prism-properties">
<div wicket:id="loggers"/>
</div>
</div>
</div>
</div>
</div>

<div class="prism-properties">
<div class="top-level-prism-container">
<div class="row prism-property">
<div class="container-fluid">
<div class="prism-header">
<div class="row">
<span class="prism-title"style="cursor: pointer;"><wicket:message key="LoggingConfigurationType.appender"/></span>
</div>
</div>
<div class="prism-properties">
<div wicket:id="appenders"/>
</div>
</div>
</div>
</div>
</div>

<div class="top-level-prism-container" wicket:id="audit"/>

</wicket:panel>
</html>
Expand Up @@ -90,9 +90,7 @@ public class LoggingConfigurationTabPanel extends BasePanel<ContainerWrapper<Log
private static final Trace LOGGER = TraceManager.getTrace(LoggingConfigurationTabPanel.class);

private static final String ID_LOGGING = "logging";
private static final String ID_APPENDERS_HEADER = "appendersHeader";
private static final String ID_APPENDERS = "appenders";
private static final String ID_LOGGERS_HEADER = "loggersHeader";
private static final String ID_LOGGERS = "loggers";
private static final String ID_AUDITING = "audit";

Expand Down Expand Up @@ -120,17 +118,6 @@ protected void initLayout() {
new ContainerWrapperFromObjectWrapperModel<ClassLoggerConfigurationType, SystemConfigurationType>(Model.of(getModelObject().getObjectWrapper()), new ItemPath(SystemConfigurationType.F_LOGGING, LoggingConfigurationType.F_CLASS_LOGGER));


PrismContainerHeaderPanel<ClassLoggerConfigurationType> loggersHeader = new PrismContainerHeaderPanel<ClassLoggerConfigurationType>(ID_LOGGERS_HEADER, loggerModel) {

private static final long serialVersionUID = 1L;

@Override
protected boolean isAddButtonVisible() {
return false;
};
};
add(loggersHeader);

MultivalueContainerListPanel<ClassLoggerConfigurationType> loggersMultivalueContainerListPanel = new MultivalueContainerListPanel<ClassLoggerConfigurationType>(ID_LOGGERS, loggerModel,
tableIdLoggers, itemPerPageLoggers, pageStorageLoggers) {

Expand All @@ -139,6 +126,13 @@ protected boolean isAddButtonVisible() {
@Override
protected List<ContainerValueWrapper<ClassLoggerConfigurationType>> postSearch(
List<ContainerValueWrapper<ClassLoggerConfigurationType>> items) {
for (int i = 0; i < items.size(); i++) {
ContainerValueWrapper<ClassLoggerConfigurationType> logger = items.get(i);
if (ProfilingConfigurationTabPanel.LOGGER_PROFILING.equals(((ClassLoggerConfigurationType)logger.getContainerValue().getRealValue()).getPackage())) {
items.remove(logger);
continue;
}
}
return items;
}

Expand Down Expand Up @@ -201,17 +195,6 @@ protected List<SearchItemDefinition> initSearchableItems(
IModel<ContainerWrapper<AppenderConfigurationType>> appenderModel =
new ContainerWrapperFromObjectWrapperModel<AppenderConfigurationType, SystemConfigurationType>(Model.of(getModelObject().getObjectWrapper()), new ItemPath(SystemConfigurationType.F_LOGGING, LoggingConfigurationType.F_APPENDER));

PrismContainerHeaderPanel<AppenderConfigurationType> appenderHeader = new PrismContainerHeaderPanel<AppenderConfigurationType>(ID_APPENDERS_HEADER, appenderModel) {

private static final long serialVersionUID = 1L;

@Override
protected boolean isAddButtonVisible() {
return false;
};
};
add(appenderHeader);

MultivalueContainerListPanelWithDetailsPanel<AppenderConfigurationType> appendersMultivalueContainerListPanel = new MultivalueContainerListPanelWithDetailsPanel<AppenderConfigurationType>(ID_APPENDERS, appenderModel,
tableIdAppenders, itemPerPageAppenders, pageStorageAppenders) {

Expand Down Expand Up @@ -363,7 +346,7 @@ public AppenderConfigurationType getObject() {
}

@Override
protected void getBasicContainerValuePanel(String idPanel) {
protected void addBasicContainerValuePanel(String idPanel) {
Form form = new Form<>("form");
ItemPath itemPath = getModelObject().getPath();
IModel<ContainerValueWrapper<AppenderConfigurationType>> model = getModel();
Expand Down
Expand Up @@ -17,12 +17,9 @@
<!DOCTYPE html>
<html xmlns:wicket="http://wicket.apache.org">
<wicket:panel>
<div class="container-fluid prism-object">
<div class="prism-header" style="height: 29px;">
<div wicket:id="notificationConfigurationHeader"/>
</div>
<div class="prism-properties">
<div class="row prism-property">
<div class="prism-properties">
<div class="row prism-property">
<div class="top-level-prism-container">
<div class="container-fluid">
<div class="prism-header" style="height: 29px;">
<div wicket:id="mailConfigurationHeader"/>
Expand All @@ -38,6 +35,13 @@
<div wicket:id="mailServersTable"/>
</div>
</div>
</div>
</div>
</div>

<div class="prism-properties">
<div class="row prism-property">
<div class="top-level-prism-container">
<div class="container-fluid">
<div class="prism-header">
<div wicket:id="fileConfigurationHeader"/>
Expand Down Expand Up @@ -76,6 +80,6 @@
</div>
</div>
</div>
</div>
</div>
</wicket:panel>
</html>
Expand Up @@ -99,7 +99,6 @@ public class NotificationConfigTabPanel extends BasePanel<ContainerWrapper<Notif

private static final Trace LOGGER = TraceManager.getTrace(NotificationConfigTabPanel.class);

private static final String ID_NOTIFICATION_CONFIG_HEADER = "notificationConfigurationHeader";
private static final String ID_MAIL_CONFIG_HEADER = "mailConfigurationHeader";
private static final String ID_DEFAULT_FROM = "defaultFrom";
private static final String ID_REDIRECT_TO_FILE = "redirectToFile";
Expand Down Expand Up @@ -141,9 +140,6 @@ protected void initLayout() {
ContainerValueWrapper<NotificationConfigurationType> value = getModel().getObject().getValues().get(0);
PropertyWrapper<MailConfigurationType> mailConfig = (PropertyWrapper<MailConfigurationType>)value.findPropertyWrapper(new ItemPath(value.getPath(), NotificationConfigurationType.F_MAIL));


add(createHeader(ID_NOTIFICATION_CONFIG_HEADER, NotificationConfigTabPanel.this.getModelObject().getItemDefinition().getTypeName().getLocalPart() + ".details"));

add(createHeader(ID_MAIL_CONFIG_HEADER, mailConfig.getItemDefinition().getTypeName().getLocalPart() + ".details"));

Form form = new Form<>("form");
Expand Down
@@ -0,0 +1,40 @@
<!--
~ Copyright (c) 2010-2013 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.
-->

<!DOCTYPE html>
<html xmlns:wicket="http://wicket.apache.org">
<wicket:panel>
<div wicket:id="profiling"/>

<div class="prism-properties">
<div class="top-level-prism-container">
<div class="row prism-property">
<div class="container-fluid">
<div class="prism-header">
<div class="row">
<span class="prism-title"style="cursor: pointer;"><wicket:message key="LoggingConfigPanel.profiling.entryExit"/></span>
</div>
</div>
<div class="prism-properties">
<div class="row prism-property" wicket:id="profilingLoggerAppenders"/>
<div class="row prism-property" wicket:id="profilingLoggerLevel"/>
</div>
</div>
</div>
</div>
</div>
</wicket:panel>
</html>

0 comments on commit 68975db

Please sign in to comment.