use of org.kie.workbench.common.stunner.bpmn.workitem.WorkItemDefinition in project kie-wb-common by kiegroup.
the class BPMNPaletteDefinitionBuilder method createPaletteServiceTasksCategory.
private void createPaletteServiceTasksCategory(final DefaultPaletteDefinition paletteDefinition, final Consumer<DefaultPaletteDefinition> callback) {
final ExpandedPaletteDefinitionBuilder.ItemMessageProvider categoryMessageProvider = paletteDefinitionBuilder.getCategoryMessageProvider();
final Function<String, Glyph> categoryGlyphProvider = paletteDefinitionBuilder.getCategoryGlyphProvider();
final Collection<WorkItemDefinition> workItemDefinitions = workItemDefinitionRegistry.get().items();
if (!workItemDefinitions.isEmpty()) {
final String serviceTasksTitle = categoryMessageProvider.getTitle(BPMNCategories.SERVICE_TASKS);
final String serviceTasksDesc = categoryMessageProvider.getDescription(BPMNCategories.SERVICE_TASKS);
final DefaultPaletteCategory workItemsCategory = new CategoryBuilder().setItemId(BPMNCategories.SERVICE_TASKS).setTitle(serviceTasksTitle).setDescription(serviceTasksDesc).setTooltip(serviceTasksTitle).setGlyph(categoryGlyphProvider.apply(BPMNCategories.SERVICE_TASKS)).build();
int i = 0;
for (final WorkItemDefinition workItemDefinition : workItemDefinitions) {
final ServiceTask serviceTask = serviceTaskBuilder.apply(workItemDefinition);
final DefinitionAdapter<Object> adapter = definitionManager.adapters().registry().getDefinitionAdapter(serviceTask.getClass());
final String category = adapter.getCategory(serviceTask);
DefaultPaletteGroup subcategoryGroup = null;
final Optional<DefaultPaletteItem> subcategoryGroupOp = workItemsCategory.getItems().stream().filter(item -> category.equals(item.getId())).findFirst();
if (!subcategoryGroupOp.isPresent()) {
subcategoryGroup = new GroupBuilder().setItemId(category).setTitle(category).setDescription(category).build();
workItemsCategory.getItems().add(subcategoryGroup);
} else {
subcategoryGroup = (DefaultPaletteGroup) subcategoryGroupOp.get();
}
final String defId = adapter.getId(serviceTask);
final String title = adapter.getTitle(serviceTask);
final String description = adapter.getDescription(serviceTask);
final DefaultPaletteItem item = new ItemBuilder().setItemId(defId).setDefinitionId(defId).setTitle(title).setDescription(description).build();
subcategoryGroup.getItems().add(item);
// Link the first work item definition found to the work item's palette category.
if (0 == i) {
workItemsCategory.setDefinitionId(defId);
}
i++;
}
paletteDefinition.getItems().add(workItemsCategory);
}
callback.accept(paletteDefinition);
}
use of org.kie.workbench.common.stunner.bpmn.workitem.WorkItemDefinition in project kie-wb-common by kiegroup.
the class WorkItemDefinitionParser method parse.
public static WorkItemDefinition parse(final WorkDefinitionImpl workDefinition, final Function<String, String> dataUriProvider) {
final WorkItemDefinition workItem = new WorkItemDefinition();
// Attributes..
workItem.setName(workDefinition.getName());
workItem.setCategory(workDefinition.getCategory());
workItem.setDocumentation(workDefinition.getDocumentation());
workItem.setDescription(workDefinition.getDescription());
workItem.setDefaultHandler(workDefinition.getDefaultHandler());
workItem.setDisplayName(workDefinition.getDisplayName());
// Icon.
final String iconEncoded = workDefinition.getIconEncoded();
final String icon = workDefinition.getIcon();
String iconData = null;
if (null != iconEncoded && iconEncoded.trim().length() > 0) {
iconData = iconEncoded;
} else if (null != icon && icon.trim().length() > 0) {
final String iconUrl = workDefinition.getPath() + "/" + icon;
iconData = dataUriProvider.apply(iconUrl);
}
workItem.setIconData(iconData);
// Parameters.
workItem.setParameters(parseParameters(workDefinition.getParameters()));
// Results..
workItem.setResults(parseParameters(workDefinition.getResults()));
return workItem;
}
use of org.kie.workbench.common.stunner.bpmn.workitem.WorkItemDefinition in project kie-wb-common by kiegroup.
the class WorkItemDefinitionClientParser method convertMvelToWid.
private static List<WorkItemDefinition> convertMvelToWid(List<Map<String, Object>> widFile) {
List<WorkItemDefinition> wids = new ArrayList<>();
for (Map<String, Object> widItem : widFile) {
WorkItemDefinition wid = emptyWid();
if (widItem.get(NAME) != null) {
wid.setName(widItem.get(NAME).toString());
}
if (widItem.get(DISPLAY_NAME) != null) {
wid.setDisplayName(widItem.get(DISPLAY_NAME).toString());
}
if (widItem.get(ICON) != null) {
wid.getIconDefinition().setUri(widItem.get(ICON).toString());
if (widItem.get(ICON).toString().startsWith(ICON_PREFIX)) {
wid.getIconDefinition().setIconData(widItem.get(ICON).toString());
}
}
if (widItem.get(DOCUMENTATION) != null) {
wid.setDocumentation(widItem.get(DOCUMENTATION).toString());
}
if (widItem.get(CATEGORY) != null) {
wid.setCategory(widItem.get(CATEGORY).toString());
}
if (isEmpty(wid.getCategory())) {
wid.setCategory(BPMNCategories.CUSTOM_TASKS);
}
if (widItem.get(DEFAULT_HANDLER) != null) {
// It has no visual representation in the Designer so far but model already done, so parsing it
wid.setDefaultHandler(widItem.get(DEFAULT_HANDLER).toString());
}
if (widItem.get(DESCRIPTION) != null) {
wid.setDescription(widItem.get(DESCRIPTION).toString());
}
if (widItem.get(PARAMETERS) != null) {
wid.setParameters(retrieveParameters((Map<String, Object>) widItem.get(PARAMETERS)));
}
if (widItem.get(RESULTS) != null) {
wid.setResults(retrieveParameters((Map<String, Object>) widItem.get(RESULTS)));
}
wids.add(wid);
}
return wids;
}
use of org.kie.workbench.common.stunner.bpmn.workitem.WorkItemDefinition in project kie-wb-common by kiegroup.
the class WorkItemDefinitionClientParser method emptyWid.
public static WorkItemDefinition emptyWid() {
WorkItemDefinition wid = new WorkItemDefinition();
wid.setIconDefinition(new IconDefinition());
wid.getIconDefinition().setUri("");
wid.getIconDefinition().setIconData(getDefaultIconData());
wid.setUri("");
wid.setName("");
wid.setCategory("");
wid.setDescription("");
wid.setDocumentation("");
wid.setDisplayName("");
wid.setResults("");
wid.setDefaultHandler("");
wid.setDependencies(new Dependencies(Collections.emptyList()));
wid.setParameters("");
return wid;
}
use of org.kie.workbench.common.stunner.bpmn.workitem.WorkItemDefinition in project kie-wb-common by kiegroup.
the class WorkItemDefinitionParser method parse.
public static WorkItemDefinition parse(final WorkDefinitionImpl workDefinition, final Function<WorkDefinitionImpl, String> uriProvider, final Function<String, String> dataUriProvider) {
final WorkItemDefinition workItem = new WorkItemDefinition();
// Attributes..
workItem.setUri(uriProvider.apply(workDefinition));
workItem.setName(workDefinition.getName());
workItem.setCategory(workDefinition.getCategory());
workItem.setDocumentation(workDefinition.getDocumentation());
workItem.setDescription(workDefinition.getDescription());
workItem.setDefaultHandler(workDefinition.getDefaultHandler());
workItem.setDisplayName(workDefinition.getDisplayName());
// Icon.
final IconDefinition iconDefinition = new IconDefinition();
final String iconEncoded = workDefinition.getIconEncoded();
final String icon = workDefinition.getIcon();
String iconData = null;
if (null != iconEncoded && iconEncoded.trim().length() > 0) {
iconData = iconEncoded;
} else if (null != icon && icon.trim().length() > 0) {
final String iconUrl = workDefinition.getPath() + "/" + icon;
iconData = dataUriProvider.apply(iconUrl);
}
iconDefinition.setUri(icon);
iconDefinition.setIconData(iconData);
workItem.setIconDefinition(iconDefinition);
// Parameters.
workItem.setParameters(parseParameters(workDefinition.getParameters()));
// Results.
workItem.setResults(parseParameters(workDefinition.getResults()));
// Dependencies.
final String[] dependencies = workDefinition.getMavenDependencies();
final List<Dependency> dependencyList = null == dependencies ? Collections.emptyList() : Stream.of(dependencies).map(WorkItemDefinitionParser::parseDependency).filter(Objects::nonNull).collect(Collectors.toList());
workItem.setDependencies(new Dependencies(dependencyList));
return workItem;
}
Aggregations