Skip to content

Commit

Permalink
Started work on task basic and scheduling tabs.
Browse files Browse the repository at this point in the history
  • Loading branch information
mederly committed Mar 24, 2016
1 parent 7516455 commit ca7cb17
Show file tree
Hide file tree
Showing 12 changed files with 491 additions and 54 deletions.
Expand Up @@ -44,6 +44,7 @@
import com.evolveum.midpoint.web.page.admin.users.component.ExecuteChangeOptionsPanel;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectType;
import org.apache.wicket.request.mapper.parameter.PageParameters;
import org.jetbrains.annotations.NotNull;

/**
* @author semancik
Expand Down Expand Up @@ -103,6 +104,14 @@ private void initLayout(PageAdminObjectDetails<O> parentPage) {

protected void initLayoutTabs(final PageAdminObjectDetails<O> parentPage) {
List<ITab> tabs = createTabs(parentPage);
TabbedPanel<ITab> tabPanel = createTabPanel(parentPage, tabs);
LOGGER.info("Adding {} to {}", tabPanel, mainForm);
mainForm.add(tabPanel);
}

// TODO move to some utility class
@NotNull
public static TabbedPanel<ITab> createTabPanel(final PageBase parentPage, final List<ITab> tabs) {
TabbedPanel<ITab> tabPanel = new TabbedPanel<ITab>(ID_TAB_PANEL, tabs) {
@Override
protected WebMarkupContainer newLink(String linkId, final int index) {
Expand Down Expand Up @@ -130,11 +139,9 @@ protected void onSubmit(AjaxRequestTarget target,
}
};
tabPanel.setOutputMarkupId(true);

LOGGER.info("Adding {} to {}", tabPanel, mainForm);
mainForm.add(tabPanel);
return tabPanel;
}

protected abstract List<ITab> createTabs(PageAdminObjectDetails<O> parentPage);

protected void initLayoutOptions(PageAdminObjectDetails<O> parentPage) {
Expand Down
Expand Up @@ -684,6 +684,10 @@ public int compare(ContainerWrapper c1, ContainerWrapper c2) {
}
}

public String getOid() {
return object.getOid();
}

public boolean isShowAssignments() {
return showAssignments;
}
Expand Down
Expand Up @@ -39,6 +39,7 @@
import com.evolveum.midpoint.web.component.AjaxButton;
import com.evolveum.midpoint.web.component.AjaxSubmitButton;
import com.evolveum.midpoint.web.component.TabbedPanel;
import com.evolveum.midpoint.web.component.objectdetails.AbstractObjectMainPanel;
import com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour;
import com.evolveum.midpoint.web.page.admin.certification.dto.CertDefinitionDto;
import com.evolveum.midpoint.web.page.admin.certification.dto.DefinitionScopeDto;
Expand Down Expand Up @@ -228,35 +229,7 @@ public WebMarkupContainer getPanel(String panelId) {
return new DefinitionXmlPanel(panelId, definitionModel);
}
});

TabbedPanel tabPanel = new TabbedPanel(ID_TAB_PANEL, tabs) {
@Override
protected WebMarkupContainer newLink(String linkId, final int index) {
return new AjaxSubmitLink(linkId) {

@Override
protected void onError(AjaxRequestTarget target,
org.apache.wicket.markup.html.form.Form<?> form) {
super.onError(target, form);
target.add(getFeedbackPanel());
}

@Override
protected void onSubmit(AjaxRequestTarget target,
org.apache.wicket.markup.html.form.Form<?> form) {
super.onSubmit(target, form);

setSelectedTab(index);
if (target != null) {
target.add(findParent(TabbedPanel.class));
}
}

};
}
};
tabPanel.setOutputMarkupId(true);

TabbedPanel tabPanel = AbstractObjectMainPanel.createTabPanel(this, tabs);
mainForm.add(tabPanel);
}

Expand Down
Expand Up @@ -18,7 +18,7 @@
<body>
<wicket:extend>
<div wicket:id="summaryPanel"/>
<!--<div wicket:id="mainPanel"/>-->
<div wicket:id="mainPanel"/>
</wicket:extend>
</body>
</html>
Expand Up @@ -17,11 +17,8 @@
package com.evolveum.midpoint.web.page.admin.server;

import com.evolveum.midpoint.gui.api.model.LoadableModel;
import com.evolveum.midpoint.gui.api.page.PageBase;
import com.evolveum.midpoint.gui.api.util.WebModelServiceUtils;
import com.evolveum.midpoint.prism.PrismObject;
import com.evolveum.midpoint.schema.GetOperationOptions;
import com.evolveum.midpoint.schema.RetrieveOption;
import com.evolveum.midpoint.schema.SelectorOptions;
import com.evolveum.midpoint.schema.result.OperationResult;
import com.evolveum.midpoint.security.api.AuthorizationConstants;
Expand All @@ -37,17 +34,12 @@
import com.evolveum.midpoint.web.component.prism.ContainerStatus;
import com.evolveum.midpoint.web.component.prism.ObjectWrapper;
import com.evolveum.midpoint.web.component.prism.ObjectWrapperFactory;
import com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour;
import com.evolveum.midpoint.web.page.admin.PageAdmin;
import com.evolveum.midpoint.web.page.admin.server.dto.TaskDto;
import com.evolveum.midpoint.web.page.admin.server.dto.TaskDtoProviderOptions;
import com.evolveum.midpoint.web.page.admin.users.component.UserSummaryPanel;
import com.evolveum.midpoint.web.util.OnePageParameterEncoder;
import com.evolveum.midpoint.xml.ns._public.common.common_3.TaskType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.UserType;
import org.apache.wicket.RestartResponseException;
import org.apache.wicket.model.AbstractReadOnlyModel;
import org.apache.wicket.model.IModel;
import org.apache.wicket.markup.html.panel.Panel;
import org.apache.wicket.request.mapper.parameter.PageParameters;
import org.apache.wicket.util.string.StringValue;

Expand All @@ -74,8 +66,8 @@ public class PageTask2 extends PageAdmin {

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

private IModel<TaskDto> model;
private IModel<ObjectWrapper<TaskType>> objectWrapperModel;
private LoadableModel<TaskDto> taskDtoModel;
private LoadableModel<ObjectWrapper<TaskType>> objectWrapperModel;
private static boolean edit = false;

public PageTask2(PageParameters parameters) {
Expand All @@ -94,16 +86,16 @@ public PageTask2(PageParameters parameters) {
e.printStackTrace(); // TODO
}
final TaskDto taskDtoFinal = taskDto;
model = new AbstractReadOnlyModel<TaskDto>() {
taskDtoModel = new LoadableModel<TaskDto>() {
@Override
public TaskDto getObject() {
protected TaskDto load() {
return taskDtoFinal;
}
};
final ObjectWrapper<TaskType> wrapper = loadObjectWrapper(taskType.asPrismObject(), result);
objectWrapperModel = new AbstractReadOnlyModel<ObjectWrapper<TaskType>>() {
objectWrapperModel = new LoadableModel<ObjectWrapper<TaskType>>() {
@Override
public ObjectWrapper<TaskType> getObject() {
protected ObjectWrapper<TaskType> load() {
return wrapper;
}
};
Expand Down Expand Up @@ -174,10 +166,10 @@ private TaskDto prepareTaskDto(TaskType task, Task operationTask, OperationResul

protected void initLayout() {
initLayoutSummaryPanel();
//
// mainPanel = createMainPanel(ID_MAIN_PANEL);
// mainPanel.setOutputMarkupId(true);
// add(mainPanel);

Panel mainPanel = new TaskMainPanel(ID_MAIN_PANEL, objectWrapperModel, taskDtoModel, this);
mainPanel.setOutputMarkupId(true);
add(mainPanel);
}

protected void initLayoutSummaryPanel() {
Expand Down
@@ -0,0 +1,67 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Copyright (c) 2010-2016 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.
-->

<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:wicket="http://wicket.apache.org">
<body>
<wicket:panel>
<div class="box box-success">
<div class="box-body no-padding">
<table class="table table-striped">
<tr>
<td><wicket:message key="pageTaskEdit.name"/></td>
<td>
<div class="col-md-6">
<div wicket:id="name"/>
</div>
</td>
</tr>
<tr>
<td><wicket:message key="pageTaskEdit.description"/></td>
<td>
<div class="col-md-6">
<div wicket:id="description"/>
</div>
</td>
</tr>
<tr>
<td><wicket:message key="pageTaskEdit.oid"/></td>
<td><span wicket:id="oid"/></td>
</tr>
<tr>
<td><wicket:message key="pageTaskEdit.identifier"/></td>
<td><span wicket:id="identifier"/></td>
</tr>
<tr>
<td><wicket:message key="pageTaskEdit.category"/></td>
<td><span wicket:id="category"/></td>
</tr>
<tr>
<td><wicket:message key="pageTaskEdit.parent"/></td>
<td><span wicket:id="parent"/></td>
</tr>
<tr wicket:id="handlerUriList">
<td><wicket:message key="pageTaskEdit.handlerUri"/></td>
<td><span wicket:id="handlerUri"/></td>
</tr>
</table>
</div>
</div>
</wicket:panel>
</body>
</html>

@@ -0,0 +1,134 @@
/*
* Copyright (c) 2010-2016 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.server;

import com.evolveum.midpoint.gui.api.model.LoadableModel;
import com.evolveum.midpoint.gui.api.page.PageBase;
import com.evolveum.midpoint.prism.query.*;
import com.evolveum.midpoint.util.exception.SchemaException;
import com.evolveum.midpoint.util.exception.SystemException;
import com.evolveum.midpoint.util.logging.Trace;
import com.evolveum.midpoint.util.logging.TraceManager;
import com.evolveum.midpoint.web.component.assignment.AssignmentEditorDto;
import com.evolveum.midpoint.web.component.data.TablePanel;
import com.evolveum.midpoint.web.component.data.column.LinkPanel;
import com.evolveum.midpoint.web.component.form.Form;
import com.evolveum.midpoint.web.component.objectdetails.AbstractFocusTabPanel;
import com.evolveum.midpoint.web.component.objectdetails.AbstractObjectTabPanel;
import com.evolveum.midpoint.web.component.prism.ObjectWrapper;
import com.evolveum.midpoint.web.component.prism.PrismObjectPanel;
import com.evolveum.midpoint.web.component.prism.PrismPropertyPanel;
import com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour;
import com.evolveum.midpoint.web.model.PrismPropertyRealValueFromObjectWrapperModel;
import com.evolveum.midpoint.web.model.PropertyWrapperFromObjectWrapperModel;
import com.evolveum.midpoint.web.page.admin.certification.dto.AccessCertificationReviewerDto;
import com.evolveum.midpoint.web.page.admin.certification.dto.StageDefinitionDto;
import com.evolveum.midpoint.web.page.admin.server.dto.TaskDto;
import com.evolveum.midpoint.web.page.admin.server.dto.TaskDtoProvider;
import com.evolveum.midpoint.web.page.admin.server.dto.TaskDtoProviderOptions;
import com.evolveum.midpoint.web.page.admin.users.dto.FocusProjectionDto;
import com.evolveum.midpoint.web.resource.img.ImgResources;
import com.evolveum.midpoint.web.util.OnePageParameterEncoder;
import com.evolveum.midpoint.xml.ns._public.common.common_3.FocusType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.TaskExecutionStatusType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.TaskType;
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.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.Panel;
import org.apache.wicket.model.AbstractReadOnlyModel;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.PropertyModel;
import org.apache.wicket.request.mapper.parameter.PageParameters;
import org.apache.wicket.request.resource.PackageResourceReference;
import org.apache.wicket.util.string.StringValue;

import java.util.ArrayList;
import java.util.List;

/**
* @author semancik
*/
public class TaskBasicTabPanel extends AbstractObjectTabPanel<TaskType> {
private static final long serialVersionUID = 1L;

protected static final String ID_NAME = "name";
protected static final String ID_DESCRIPTION = "description";
private static final String ID_OID = "oid";
private static final String ID_IDENTIFIER = "identifier";
private static final String ID_CATEGORY = "category";
private static final String ID_PARENT = "parent";
private static final String ID_HANDLER_URI_LIST = "handlerUriList";
private static final String ID_HANDLER_URI = "handlerUri";

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

private LoadableModel<TaskDto> taskDtoModel;

public TaskBasicTabPanel(String id, Form mainForm,
LoadableModel<ObjectWrapper<TaskType>> taskWrapperModel,
LoadableModel<TaskDto> taskDtoModel, PageBase pageBase) {
super(id, mainForm, taskWrapperModel, pageBase);
this.taskDtoModel = taskDtoModel;
initLayout(pageBase);
}

private void initLayout(final PageBase pageBase) {

PrismPropertyPanel taskNamePanel = new PrismPropertyPanel<>(ID_NAME,
new PropertyWrapperFromObjectWrapperModel(getObjectWrapperModel(), TaskType.F_NAME),
null, pageBase);
taskNamePanel.setLabelContainerVisible(false);
add(taskNamePanel);

PrismPropertyPanel taskDescriptionPanel = new PrismPropertyPanel<>(ID_DESCRIPTION,
new PropertyWrapperFromObjectWrapperModel(getObjectWrapperModel(), TaskType.F_DESCRIPTION),
null, pageBase);
taskDescriptionPanel.setLabelContainerVisible(false);
add(taskDescriptionPanel);

Label oid = new Label(ID_OID, new PropertyModel(getObjectWrapperModel(), "oid"));
add(oid);

add(new Label(ID_IDENTIFIER, new PrismPropertyRealValueFromObjectWrapperModel<>(getObjectWrapperModel(), TaskType.F_TASK_IDENTIFIER)));
add(new Label(ID_CATEGORY, new PrismPropertyRealValueFromObjectWrapperModel<>(getObjectWrapperModel(), TaskType.F_CATEGORY)));

LinkPanel parent = new LinkPanel(ID_PARENT, new PropertyModel<>(taskDtoModel, TaskDto.F_PARENT_TASK_NAME)) {
@Override
public void onClick(AjaxRequestTarget target) {
String oid = taskDtoModel.getObject().getParentTaskOid();
if (oid != null) {
PageParameters parameters = new PageParameters();
parameters.add(OnePageParameterEncoder.PARAMETER, oid);
setResponsePage(new PageTaskEdit(parameters, pageBase));
}
}
};
add(parent);

ListView<String> handlerUriList = new ListView<String>(ID_HANDLER_URI_LIST, new PropertyModel(taskDtoModel, TaskDto.F_HANDLER_URI_LIST)) {
@Override
protected void populateItem(ListItem<String> item) {
item.add(new Label(ID_HANDLER_URI, item.getModelObject()));
}
};
add(handlerUriList);
}

}

0 comments on commit ca7cb17

Please sign in to comment.