use of org.kie.dmn.model.v1_1.List in project kie-wb-common by kiegroup.
the class DeleteRelationColumnCommandTest method testGraphCommandExecuteDeleteMiddleWithRows.
@Test
public void testGraphCommandExecuteDeleteMiddleWithRows() {
uiModel.appendColumn(mock(RelationColumn.class));
uiModel.appendColumn(mock(RelationColumn.class));
relation.getColumn().add(new InformationItem());
relation.getColumn().add(new InformationItem());
relation.getRow().add(new List());
final LiteralExpression firstExpression = new LiteralExpression();
final LiteralExpression lastExpression = new LiteralExpression();
relation.getRow().get(0).getExpression().add(firstExpression);
relation.getRow().get(0).getExpression().add(new LiteralExpression());
relation.getRow().get(0).getExpression().add(lastExpression);
makeCommand(2);
final Command<GraphCommandExecutionContext, RuleViolation> c = command.newGraphCommand(handler);
assertEquals(GraphCommandResultBuilder.SUCCESS, c.execute(gce));
assertEquals(2, relation.getColumn().size());
assertEquals(1, relation.getRow().size());
assertEquals(2, relation.getRow().get(0).getExpression().size());
assertEquals(firstExpression, relation.getRow().get(0).getExpression().get(0));
assertEquals(lastExpression, relation.getRow().get(0).getExpression().get(1));
}
use of org.kie.dmn.model.v1_1.List in project kie-wb-common by kiegroup.
the class DeleteRelationRowCommandTest method setup.
@Before
public void setup() {
this.relation = new Relation();
this.relation.getRow().add(new List());
this.uiModel = new BaseGridData();
this.uiModel.appendRow(new DMNGridRow());
this.uiModel.appendColumn(uiRowNumberColumn);
this.uiModelMapper = new RelationUIModelMapper(() -> uiModel, () -> Optional.of(relation), listSelector);
makeCommand(0);
doReturn(ruleManager).when(handler).getRuleManager();
doReturn(0).when(uiRowNumberColumn).getIndex();
doReturn(1).when(uiModelColumn).getIndex();
}
use of org.kie.dmn.model.v1_1.List in project kie-wb-common by kiegroup.
the class RelationGridTest method testDeleteRow.
@Test
public void testDeleteRow() throws Exception {
relation.getRow().add(new List());
setupGrid(0);
grid.deleteRow(0);
verify(sessionCommandManager).execute(eq(canvasHandler), deleteRowCommand.capture());
deleteRowCommand.getValue().execute(canvasHandler);
verify(gridLayer).batch(any(GridLayerRedrawManager.PrioritizedCommand.class));
verify(gridPanel).refreshScrollPosition();
verify(gridPanel).updatePanelSize();
}
use of org.kie.dmn.model.v1_1.List in project kie-wb-common by kiegroup.
the class RelationGridTest method testInitialiseUiModel.
@Test
public void testInitialiseUiModel() throws Exception {
relation.getColumn().add(new InformationItem() {
{
getName().setValue("first column header");
}
});
final String firstRowValue = "first column value 1";
final String secondRowValue = "first column value 2";
relation.getRow().add(new List() {
{
getExpression().add(new LiteralExpression() {
{
setText(firstRowValue);
}
});
}
});
relation.getRow().add(new List() {
{
getExpression().add(new LiteralExpression() {
{
setText(secondRowValue);
}
});
}
});
expression = Optional.of(relation);
setupGrid(0);
assertEquals(2, grid.getModel().getRowCount());
assertEquals(firstRowValue, grid.getModel().getRow(0).getCells().get(1).getValue().getValue());
assertEquals(secondRowValue, grid.getModel().getRow(1).getCells().get(1).getValue().getValue());
}
use of org.kie.dmn.model.v1_1.List in project kie-wb-common by kiegroup.
the class MoveColumnsCommand method newGraphCommand.
@Override
protected Command<GraphCommandExecutionContext, RuleViolation> newGraphCommand(final AbstractCanvasHandler context) {
return new AbstractGraphCommand() {
@Override
protected CommandResult<RuleViolation> check(final GraphCommandExecutionContext context) {
return isColumnInValidSection() ? GraphCommandResultBuilder.SUCCESS : GraphCommandResultBuilder.FAILED;
}
private boolean isColumnInValidSection() {
final RelationSection section = RelationUIModelMapperHelper.getSection(relation, index);
return section == RelationSection.INFORMATION_ITEM;
}
@Override
public CommandResult<RuleViolation> execute(final GraphCommandExecutionContext context) {
return moveInformationItems(index);
}
@Override
public CommandResult<RuleViolation> undo(final GraphCommandExecutionContext context) {
return moveInformationItems(oldIndex);
}
private CommandResult<RuleViolation> moveInformationItems(final int index) {
final RelationSection section = RelationUIModelMapperHelper.getSection(relation, index);
if (section == RelationSection.INFORMATION_ITEM) {
final int oldIndex = uiModel.getColumns().indexOf(columns.get(0));
final int relativeIndex = RelationUIModelMapperHelper.getInformationItemIndex(relation, index);
final int relativeOldIndex = RelationUIModelMapperHelper.getInformationItemIndex(relation, oldIndex);
final java.util.List<Integer> informationItemIndexesToMove = columns.stream().map(c -> uiModel.getColumns().indexOf(c)).map(i -> RelationUIModelMapperHelper.getInformationItemIndex(relation, i)).collect(Collectors.toList());
moveInformationItems(relativeIndex, relativeOldIndex, relation.getColumn(), informationItemIndexesToMove);
updateRowsData(relativeIndex, relativeOldIndex, relation.getRow(), informationItemIndexesToMove);
return GraphCommandResultBuilder.SUCCESS;
} else {
return GraphCommandResultBuilder.FAILED;
}
}
private <T> void moveInformationItems(final int relativeIndex, final int relativeOldIndex, final java.util.List<T> informationItems, final java.util.List<Integer> informationItemIndexesToMove) {
final java.util.List<T> informationItemsToMove = informationItemIndexesToMove.stream().map(informationItems::get).collect(Collectors.toList());
informationItems.removeAll(informationItemsToMove);
if (relativeIndex < relativeOldIndex) {
informationItems.addAll(relativeIndex, informationItemsToMove);
} else if (relativeIndex > relativeOldIndex) {
informationItems.addAll(relativeIndex - informationItemsToMove.size() + 1, informationItemsToMove);
}
}
private void updateRowsData(final int relativeIndex, final int relativeOldIndex, final java.util.List<List> rows, final java.util.List<Integer> informationItemIndexesToMove) {
rows.forEach(row -> moveInformationItems(relativeIndex, relativeOldIndex, row.getExpression(), informationItemIndexesToMove));
}
};
}
Aggregations