use of org.kie.workbench.common.dmn.api.definition.v1_1.List in project kie-wb-common by kiegroup.
the class FunctionGrid method getItems.
@Override
@SuppressWarnings("unused")
public List<ListSelectorItem> getItems(final int uiRowIndex, final int uiColumnIndex) {
final List<ListSelectorItem> items = new ArrayList<>();
final FunctionDefinition.Kind kind = KindUtilities.getKind(expression.get());
items.add(ListSelectorTextItem.build(translationService.format(DMNEditorConstants.FunctionEditor_FEEL), !FunctionDefinition.Kind.FEEL.equals(kind), () -> {
cellEditorControls.hide();
expression.ifPresent(e -> setKind(FunctionDefinition.Kind.FEEL));
}));
items.add(ListSelectorTextItem.build(translationService.format(DMNEditorConstants.FunctionEditor_JAVA), !FunctionDefinition.Kind.JAVA.equals(kind), () -> {
cellEditorControls.hide();
expression.ifPresent(e -> setKind(FunctionDefinition.Kind.JAVA));
}));
items.add(ListSelectorTextItem.build(translationService.format(DMNEditorConstants.FunctionEditor_PMML), !FunctionDefinition.Kind.PMML.equals(kind), () -> {
cellEditorControls.hide();
expression.ifPresent(e -> setKind(FunctionDefinition.Kind.PMML));
}));
// If cell editor is UndefinedExpressionGrid don't add extra items
final GridCell<?> cell = model.getCell(uiRowIndex, uiColumnIndex);
final ExpressionCellValue ecv = (ExpressionCellValue) cell.getValue();
if (!ecv.getValue().isPresent()) {
return items;
}
final BaseExpressionGrid grid = ecv.getValue().get();
if (grid instanceof UndefinedExpressionGrid) {
return items;
}
items.add(new ListSelectorDividerItem());
items.add(ListSelectorTextItem.build(translationService.format(DMNEditorConstants.ExpressionEditor_Clear), true, () -> {
cellEditorControls.hide();
clearExpressionType();
}));
return items;
}
use of org.kie.workbench.common.dmn.api.definition.v1_1.List in project kie-wb-common by kiegroup.
the class RelationEditorDefinition method getModelClass.
@Override
public Optional<Relation> getModelClass() {
final Relation relation = new Relation();
final InformationItem column = new InformationItem();
final org.kie.workbench.common.dmn.api.definition.v1_1.List row = new org.kie.workbench.common.dmn.api.definition.v1_1.List();
row.getExpression().add(new LiteralExpression());
relation.getColumn().add(column);
relation.getRow().add(row);
return Optional.of(relation);
}
use of org.kie.workbench.common.dmn.api.definition.v1_1.List in project kie-wb-common by kiegroup.
the class RelationUIModelMapper method toDMNModel.
@Override
public void toDMNModel(final int rowIndex, final int columnIndex, final Supplier<Optional<GridCellValue<?>>> cell) {
dmnModel.get().ifPresent(relation -> {
final RelationUIModelMapperHelper.RelationSection section = RelationUIModelMapperHelper.getSection(relation, columnIndex);
switch(section) {
case ROW_INDEX:
break;
case INFORMATION_ITEM:
final org.kie.workbench.common.dmn.api.definition.v1_1.List row = relation.getRow().get(rowIndex);
final int iiIndex = RelationUIModelMapperHelper.getInformationItemIndex(relation, columnIndex);
final Expression e = row.getExpression().get(iiIndex);
final Optional<Expression> expression = Optional.ofNullable(e);
expression.ifPresent(ex -> {
// Whilst the DMN 1.1 specification allows for ANY expression to be used we have made the simplification
// to limit ourselves to LiteralExpressions. Our Grid-system supports ANY (nested) expression too; however
// the simplification has been made for the benefit of USERS.
final LiteralExpression le = (LiteralExpression) ex;
le.setText(cell.get().orElse(new BaseGridCellValue<>("")).getValue().toString());
});
}
});
}
use of org.kie.workbench.common.dmn.api.definition.v1_1.List in project kie-wb-common by kiegroup.
the class RelationUIModelMapper method fromDMNModel.
@Override
public void fromDMNModel(final int rowIndex, final int columnIndex) {
dmnModel.get().ifPresent(relation -> {
final RelationUIModelMapperHelper.RelationSection section = RelationUIModelMapperHelper.getSection(relation, columnIndex);
switch(section) {
case ROW_INDEX:
uiModel.get().setCell(rowIndex, columnIndex, () -> new RelationGridCell<>(new BaseGridCellValue<>(rowIndex + 1), listSelector));
uiModel.get().getCell(rowIndex, columnIndex).setSelectionStrategy(RowSelectionStrategy.INSTANCE);
break;
case INFORMATION_ITEM:
final org.kie.workbench.common.dmn.api.definition.v1_1.List row = relation.getRow().get(rowIndex);
final int iiIndex = RelationUIModelMapperHelper.getInformationItemIndex(relation, columnIndex);
final Expression e = row.getExpression().get(iiIndex);
final Optional<Expression> expression = Optional.ofNullable(e);
expression.ifPresent(ex -> {
// Whilst the DMN 1.1 specification allows for ANY expression to be used we have made the simplification
// to limit ourselves to LiteralExpressions. Our Grid-system supports ANY (nested) expression too; however
// the simplification has been made for the benefit of USERS.
final LiteralExpression le = (LiteralExpression) ex;
uiModel.get().setCell(rowIndex, columnIndex, () -> new RelationGridCell<>(new BaseGridCellValue<>(le.getText()), listSelector));
});
}
});
}
use of org.kie.workbench.common.dmn.api.definition.v1_1.List in project kie-wb-common by kiegroup.
the class BaseExpressionGrid method executeRenderQueueCommands.
@Override
protected void executeRenderQueueCommands(final boolean isSelectionLayer) {
final List<Pair<Group, GridRenderer.RendererCommand>> gridLineCommands = new ArrayList<>();
final List<Pair<Group, GridRenderer.RendererCommand>> allOtherCommands = new ArrayList<>();
final List<Pair<Group, GridRenderer.RendererCommand>> selectedCellsCommands = new ArrayList<>();
for (Pair<Group, List<GridRenderer.RendererCommand>> p : renderQueue) {
final Group parent = p.getK1();
final List<GridRenderer.RendererCommand> commands = p.getK2();
for (GridRenderer.RendererCommand command : commands) {
if (command instanceof GridRenderer.RenderSelectedCellsCommand) {
selectedCellsCommands.add(new Pair<>(parent, command));
} else if (command instanceof GridRenderer.RenderHeaderGridLinesCommand) {
gridLineCommands.add(new Pair<>(parent, command));
} else if (command instanceof GridRenderer.RenderBodyGridLinesCommand) {
gridLineCommands.add(new Pair<>(parent, command));
} else {
allOtherCommands.add(new Pair<>(parent, command));
}
}
}
final Predicate<Pair<Group, GridRenderer.RendererCommand>> renderHeader = (p) -> {
final GridRenderer.RendererCommand command = p.getK2();
if (isHeaderHidden()) {
return !(command instanceof GridRenderer.RendererHeaderCommand);
}
return true;
};
renderQueue.clear();
allOtherCommands.stream().filter(renderHeader).forEach(p -> addCommandToRenderQueue(p.getK1(), p.getK2()));
gridLineCommands.stream().filter(renderHeader).forEach(p -> addCommandToRenderQueue(p.getK1(), p.getK2()));
selectedCellsCommands.stream().filter(renderHeader).forEach(p -> addCommandToRenderQueue(p.getK1(), p.getK2()));
super.executeRenderQueueCommands(isSelectionLayer);
}
Aggregations