CCM NG: Optimised lambda expressions in Workflow UI

git-svn-id: https://svn.libreccm.org/ccm/ccm_ng@4284 8810af33-2d31-482b-a856-94f89814c4df
pull/2/head
jensp 2016-09-07 06:52:44 +00:00
parent 4c8615624e
commit efa065851a
4 changed files with 41 additions and 45 deletions

View File

@ -46,6 +46,7 @@ import java.util.List;
import java.util.Locale; import java.util.Locale;
import java.util.Map; import java.util.Map;
import java.util.TooManyListenersException; import java.util.TooManyListenersException;
import java.util.stream.Collectors;
/** /**
* @author <a href="jens.pelzetter@googlemail.com">Jens Pelzetter</a> * @author <a href="jens.pelzetter@googlemail.com">Jens Pelzetter</a>
@ -179,15 +180,16 @@ class BaseTaskForm extends BaseForm {
final String[] selectedDependencies) { final String[] selectedDependencies) {
final List<Task> dependencies = task.getDependentTasks(); final List<Task> dependencies = task.getDependentTasks();
final Map<Long, Task> toAdd = new HashMap<>(); final Map<Long, Task> toAdd = new HashMap<>();
final Map<Long, Task> toRemove = new HashMap<>();
// Everything is to be removed unless it is in the array. // Everything is to be removed unless it is in the array.
dependencies.forEach(temp -> toRemove.put(temp.getTaskId(), temp)); final Map<Long, Task> toRemove = dependencies.stream()
.collect(Collectors.toMap(Task::getTaskId,
final CdiUtil cdiUtil =CdiUtil.createCdiUtil(); dependency -> dependency));
final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
final TaskRepository taskRepo = cdiUtil.findBean(TaskRepository.class); final TaskRepository taskRepo = cdiUtil.findBean(TaskRepository.class);
final WorkflowManager workflowManager = cdiUtil.findBean(WorkflowManager.class); final WorkflowManager workflowManager = cdiUtil.findBean(
WorkflowManager.class);
Long selectedId; Long selectedId;
Object addedTask; Object addedTask;
if (selectedDependencies != null) { if (selectedDependencies != null) {
@ -200,11 +202,11 @@ class BaseTaskForm extends BaseForm {
} }
} }
toRemove.values().forEach(temp -> workflowManager.removeDependentTask( toRemove.values().forEach(taskToRemove -> workflowManager
task, temp)); .removeDependentTask(task, taskToRemove));
toAdd.values().forEach(temp -> workflowManager.addDependentTask(task, toAdd.values().forEach(tasktoAdd -> workflowManager
temp)); .addDependentTask(task, tasktoAdd));
} }
} }

View File

@ -56,6 +56,7 @@ import org.librecms.CmsConstants;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.TooManyListenersException; import java.util.TooManyListenersException;
import java.util.stream.Collectors;
class TaskAddRole extends CMSForm { class TaskAddRole extends CMSForm {
@ -104,10 +105,10 @@ class TaskAddRole extends CMSForm {
final CmsTask task = m_task.getTask(state); final CmsTask task = m_task.getTask(state);
final List<TaskAssignment> assignments = task.getAssignments(); final List<TaskAssignment> assignments = task.getAssignments();
final List<Role> roles = new ArrayList<>(); final List<Role> roles = assignments.stream()
.map(TaskAssignment::getRole)
assignments.forEach(assignment -> roles.add(assignment.getRole())); .collect(Collectors.toList());
m_roles.setValue(state, roles); m_roles.setValue(state, roles);
} }

View File

@ -18,7 +18,6 @@
*/ */
package com.arsdigita.cms.ui.workflow; package com.arsdigita.cms.ui.workflow;
import com.arsdigita.bebop.Form;
import com.arsdigita.bebop.FormProcessException; import com.arsdigita.bebop.FormProcessException;
import com.arsdigita.bebop.PageState; import com.arsdigita.bebop.PageState;
import com.arsdigita.bebop.event.FormInitListener; import com.arsdigita.bebop.event.FormInitListener;
@ -45,6 +44,7 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Locale; import java.util.Locale;
import java.util.TooManyListenersException; import java.util.TooManyListenersException;
import java.util.stream.Collectors;
/** /**
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a> * @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
@ -109,12 +109,12 @@ class TaskEditForm extends BaseTaskForm {
m_type.setValue(state, Long.toString(task.getTaskType() m_type.setValue(state, Long.toString(task.getTaskType()
.getTaskTypeId())); .getTaskTypeId()));
final List<Task> deps = task.getDependsOn(); final List<Task> dependencies = task.getDependsOn();
final List<String> list = new ArrayList<>(); final List<String> depIdList = dependencies.stream()
.map(dependency -> Long.toString(dependency.getTaskId()))
.collect(Collectors.toList());
deps.forEach(dep -> list.add(Long.toString(dep.getTaskId()))); m_deps.setValue(state, depIdList.toArray());
m_deps.setValue(state, list.toArray());
} }
} }
@ -130,7 +130,8 @@ class TaskEditForm extends BaseTaskForm {
final CdiUtil cdiUtil = CdiUtil.createCdiUtil(); final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
final TaskRepository taskRepo = cdiUtil.findBean( final TaskRepository taskRepo = cdiUtil.findBean(
TaskRepository.class); TaskRepository.class);
final CmsTaskTypeRepository taskTypeRepo = cdiUtil.findBean(CmsTaskTypeRepository.class); final CmsTaskTypeRepository taskTypeRepo = cdiUtil.findBean(
CmsTaskTypeRepository.class);
final ConfigurationManager confManager = cdiUtil.findBean( final ConfigurationManager confManager = cdiUtil.findBean(
ConfigurationManager.class); ConfigurationManager.class);
final KernelConfig kernelConfig = confManager.findConfiguration( final KernelConfig kernelConfig = confManager.findConfiguration(
@ -142,8 +143,9 @@ class TaskEditForm extends BaseTaskForm {
task.getDescription().addValue( task.getDescription().addValue(
defaultLocale, defaultLocale,
(String) m_description.getValue(state)); (String) m_description.getValue(state));
final CmsTaskType taskType = taskTypeRepo.findById((Long) m_type.getValue(state)); final CmsTaskType taskType = taskTypeRepo.findById((Long) m_type
.getValue(state));
task.setTaskType(taskType); task.setTaskType(taskType);
taskRepo.save(task); taskRepo.save(task);

View File

@ -31,41 +31,32 @@ import com.arsdigita.bebop.table.DefaultTableCellRenderer;
import com.arsdigita.bebop.table.TableColumn; import com.arsdigita.bebop.table.TableColumn;
import com.arsdigita.bebop.table.TableModel; import com.arsdigita.bebop.table.TableModel;
import com.arsdigita.bebop.table.TableModelBuilder; import com.arsdigita.bebop.table.TableModelBuilder;
import com.arsdigita.cms.CMS;
import com.arsdigita.cms.ui.BaseItemPane; import com.arsdigita.cms.ui.BaseItemPane;
import com.arsdigita.cms.ui.VisibilityComponent; import com.arsdigita.cms.ui.VisibilityComponent;
import com.arsdigita.kernel.KernelConfig; import com.arsdigita.kernel.KernelConfig;
import org.librecms.workflow.CmsTask; import org.librecms.workflow.CmsTask;
import org.libreccm.core.EmailAddress;
import org.libreccm.security.Group;
import org.libreccm.security.User; import org.libreccm.security.User;
import com.arsdigita.toolbox.ui.ActionGroup; import com.arsdigita.toolbox.ui.ActionGroup;
import com.arsdigita.toolbox.ui.PropertyList; import com.arsdigita.toolbox.ui.PropertyList;
import com.arsdigita.toolbox.ui.Section; import com.arsdigita.toolbox.ui.Section;
import com.arsdigita.util.LockableImpl; import com.arsdigita.util.LockableImpl;
import com.arsdigita.web.Web;
import com.sun.javafx.scene.control.skin.VirtualFlow;
import org.libreccm.cdi.utils.CdiUtil; import org.libreccm.cdi.utils.CdiUtil;
import org.libreccm.security.GroupRepository;
import org.libreccm.security.PermissionChecker; import org.libreccm.security.PermissionChecker;
import org.libreccm.security.Role; import org.libreccm.security.Role;
import org.libreccm.security.RoleRepository; import org.libreccm.security.RoleRepository;
import org.libreccm.security.Shiro; import org.libreccm.security.Shiro;
import org.libreccm.workflow.Task; import org.libreccm.workflow.Task;
import org.libreccm.workflow.UserTask; import org.libreccm.workflow.UserTask;
import org.libreccm.workflow.Workflow;
import org.libreccm.workflow.WorkflowManager; import org.libreccm.workflow.WorkflowManager;
import org.librecms.CmsConstants; import org.librecms.CmsConstants;
import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.Locale; import java.util.Locale;
import java.util.StringJoiner; import java.util.stream.Collectors;
/** /**
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a> * @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
@ -336,15 +327,14 @@ final class TaskItemPane extends BaseItemPane {
} }
private String deps(final CmsTask task) { private String deps(final CmsTask task) {
final List<Task> deps = task.getDependsOn(); final List<Task> dependencies = task.getDependsOn();
final KernelConfig kernelConfig = KernelConfig.getConfig(); final KernelConfig kernelConfig = KernelConfig.getConfig();
final Locale defaultLocale = kernelConfig.getDefaultLocale(); final Locale defaultLocale = kernelConfig.getDefaultLocale();
final StringJoiner joiner = new StringJoiner(", ");
deps.forEach(dep -> joiner.add(dep.getLabel().getValue( return dependencies.stream()
defaultLocale))); .map(dependency -> dependency.getLabel().getValue(
defaultLocale))
return joiner.toString(); .collect(Collectors.joining(", "));
} }
} }
@ -432,13 +422,14 @@ final class TaskItemPane extends BaseItemPane {
private class Model implements TableModel { private class Model implements TableModel {
private final List<Role> roles = new ArrayList<>(); private final List<Role> roles;
private Role role; private Role role;
private int index = -1; private int index = -1;
private Model(final CmsTask task) { private Model(final CmsTask task) {
task.getAssignments().forEach(assignment -> roles.add( roles = task.getAssignments().stream()
assignment.getRole())); .map(assignment -> assignment.getRole())
.collect(Collectors.toList());
} }
@Override @Override
@ -449,7 +440,7 @@ final class TaskItemPane extends BaseItemPane {
@Override @Override
public final boolean nextRow() { public final boolean nextRow() {
index++; index++;
return index < roles.size(); return index < roles.size();
} }
@Override @Override