use of org.eclipse.sirius.components.representations.GetOrCreateRandomIdProvider in project sirius-components by eclipse-sirius.
the class NodeStylePropertiesConfigurer method getNodeStyleProperties.
private FormDescription getNodeStyleProperties() {
// $NON-NLS-1$
UUID formDescriptionId = UUID.nameUUIDFromBytes("nodestyle".getBytes());
// @formatter:off
List<AbstractControlDescription> controls = List.of(// $NON-NLS-1$ //$NON-NLS-2$
this.createTextField(// $NON-NLS-1$ //$NON-NLS-2$
"nodestyle.sizeExpression", // $NON-NLS-1$ //$NON-NLS-2$
"Size Expression", style -> ((NodeStyle) style).getSizeComputationExpression(), (style, newSizeExpression) -> ((NodeStyle) style).setSizeComputationExpression(newSizeExpression), ViewPackage.Literals.NODE_STYLE__SIZE_COMPUTATION_EXPRESSION), // $NON-NLS-1$ //$NON-NLS-2$
this.createTextField(// $NON-NLS-1$ //$NON-NLS-2$
"nodestyle.labelColor", // $NON-NLS-1$ //$NON-NLS-2$
"Label Color", style -> ((NodeStyle) style).getLabelColor(), (style, newLabelColor) -> ((NodeStyle) style).setLabelColor(newLabelColor), ViewPackage.Literals.NODE_STYLE__LABEL_COLOR), // $NON-NLS-1$ //$NON-NLS-2$
this.createTextField(// $NON-NLS-1$ //$NON-NLS-2$
"nodestyle.color", // $NON-NLS-1$ //$NON-NLS-2$
"Color", style -> ((NodeStyle) style).getColor(), (style, newColor) -> ((NodeStyle) style).setColor(newColor), ViewPackage.Literals.STYLE__COLOR), // $NON-NLS-1$ //$NON-NLS-2$
this.createTextField(// $NON-NLS-1$ //$NON-NLS-2$
"nodestyle.borderColor", // $NON-NLS-1$ //$NON-NLS-2$
"Border Color", style -> ((NodeStyle) style).getBorderColor(), (style, newColor) -> ((NodeStyle) style).setBorderColor(newColor), ViewPackage.Literals.BORDER_STYLE__BORDER_COLOR), // $NON-NLS-1$ //$NON-NLS-2$
this.createTextField(// $NON-NLS-1$ //$NON-NLS-2$
"nodestyle.borderRadius", // $NON-NLS-1$ //$NON-NLS-2$
"Border Radius", style -> String.valueOf(((NodeStyle) style).getBorderRadius()), (style, newBorderRadius) -> {
try {
((NodeStyle) style).setBorderRadius(Integer.parseInt(newBorderRadius));
} catch (NumberFormatException nfe) {
// Ignore.
}
}, ViewPackage.Literals.BORDER_STYLE__BORDER_RADIUS), // $NON-NLS-1$ //$NON-NLS-2$
this.createTextField(// $NON-NLS-1$ //$NON-NLS-2$
"nodestyle.borderSize", // $NON-NLS-1$ //$NON-NLS-2$
"Border Size", style -> String.valueOf(((NodeStyle) style).getBorderSize()), (style, newBorderSize) -> {
try {
((NodeStyle) style).setBorderSize(Integer.parseInt(newBorderSize));
} catch (NumberFormatException nfe) {
// Ignore.
}
}, ViewPackage.Literals.BORDER_STYLE__BORDER_SIZE), // $NON-NLS-1$
this.createBorderLineStyleSelectionField("nodestyle.borderstyle", ViewPackage.Literals.BORDER_STYLE__BORDER_LINE_STYLE), // $NON-NLS-1$ //$NON-NLS-2$
this.createCheckbox(// $NON-NLS-1$ //$NON-NLS-2$
"nodestyle.listMode", // $NON-NLS-1$ //$NON-NLS-2$
"List Mode", style -> ((NodeStyle) style).isListMode(), (style, newListMode) -> ((NodeStyle) style).setListMode(newListMode), ViewPackage.Literals.NODE_STYLE__LIST_MODE), // $NON-NLS-1$ //$NON-NLS-2$
this.createTextField(// $NON-NLS-1$ //$NON-NLS-2$
"nodestyle.fontSize", // $NON-NLS-1$ //$NON-NLS-2$
"Font Size", style -> String.valueOf(((LabelStyle) style).getFontSize()), (style, newColor) -> {
try {
((LabelStyle) style).setFontSize(Integer.parseInt(newColor));
} catch (NumberFormatException nfe) {
// Ignore.
}
}, ViewPackage.Literals.LABEL_STYLE__FONT_SIZE), // $NON-NLS-1$ //$NON-NLS-2$
this.createCheckbox(// $NON-NLS-1$ //$NON-NLS-2$
"nodestyle.italic", // $NON-NLS-1$ //$NON-NLS-2$
"Italic", style -> ((LabelStyle) style).isItalic(), (style, newItalic) -> ((LabelStyle) style).setItalic(newItalic), ViewPackage.Literals.LABEL_STYLE__ITALIC), // $NON-NLS-1$ //$NON-NLS-2$
this.createCheckbox(// $NON-NLS-1$ //$NON-NLS-2$
"nodestyle.bold", // $NON-NLS-1$ //$NON-NLS-2$
"Bold", style -> ((LabelStyle) style).isBold(), (style, newBold) -> ((LabelStyle) style).setBold(newBold), ViewPackage.Literals.LABEL_STYLE__BOLD), // $NON-NLS-1$ //$NON-NLS-2$
this.createCheckbox(// $NON-NLS-1$ //$NON-NLS-2$
"nodestyle.underline", // $NON-NLS-1$ //$NON-NLS-2$
"Underline", style -> ((LabelStyle) style).isUnderline(), (style, newUnderline) -> ((LabelStyle) style).setUnderline(newUnderline), ViewPackage.Literals.LABEL_STYLE__UNDERLINE), // $NON-NLS-1$ //$NON-NLS-2$
this.createCheckbox(// $NON-NLS-1$ //$NON-NLS-2$
"nodestyle.strikeThrough", // $NON-NLS-1$ //$NON-NLS-2$
"Strike Through", style -> ((LabelStyle) style).isStrikeThrough(), (style, newStrikeThrough) -> ((LabelStyle) style).setStrikeThrough(newStrikeThrough), ViewPackage.Literals.LABEL_STYLE__STRIKE_THROUGH), this.createShapeSelectionField(ViewPackage.Literals.NODE_STYLE__SHAPE));
GroupDescription groupDescription = this.createSimpleGroupDescription(controls);
Predicate<VariableManager> canCreatePagePredicate = variableManager -> variableManager.get(VariableManager.SELF, Object.class).filter(self -> self instanceof List<?>).map(self -> (List<?>) self).flatMap(self -> self.stream().findFirst()).filter(self -> self instanceof NodeStyle && !(self instanceof ConditionalNodeStyle)).isPresent();
return FormDescription.newFormDescription(formDescriptionId).label(// $NON-NLS-1$
"Node Style").labelProvider(variableManager -> variableManager.get(VariableManager.SELF, NodeStyle.class).map(NodeStyle::getColor).orElse(UNNAMED)).canCreatePredicate(variableManager -> true).idProvider(new GetOrCreateRandomIdProvider()).targetObjectIdProvider(this.getTargetObjectIdProvider()).pageDescriptions(List.of(this.createSimplePageDescription(groupDescription, canCreatePagePredicate))).groupDescriptions(List.of(groupDescription)).build();
// @formatter:on
}
use of org.eclipse.sirius.components.representations.GetOrCreateRandomIdProvider in project sirius-components by eclipse-sirius.
the class NodeStylePropertiesConfigurer method getConditionalNodeStyleProperties.
private FormDescription getConditionalNodeStyleProperties() {
// $NON-NLS-1$
UUID formDescriptionId = UUID.nameUUIDFromBytes("conditionalnodestyle".getBytes());
// @formatter:off
List<AbstractControlDescription> controls = List.of(// $NON-NLS-1$ //$NON-NLS-2$
this.createTextField(// $NON-NLS-1$ //$NON-NLS-2$
"conditionalnodestyle.sizeExpression", // $NON-NLS-1$ //$NON-NLS-2$
"Size Expression", style -> ((NodeStyle) style).getSizeComputationExpression(), (style, newSizeExpression) -> ((NodeStyle) style).setSizeComputationExpression(newSizeExpression), ViewPackage.Literals.NODE_STYLE__SIZE_COMPUTATION_EXPRESSION), // $NON-NLS-1$ //$NON-NLS-2$
this.createTextField(// $NON-NLS-1$ //$NON-NLS-2$
"conditionalnodestyle.condition", // $NON-NLS-1$ //$NON-NLS-2$
"Condition", style -> ((ConditionalNodeStyle) style).getCondition(), (style, newCondition) -> ((ConditionalNodeStyle) style).setCondition(newCondition), ViewPackage.Literals.CONDITIONAL__CONDITION), // $NON-NLS-1$ //$NON-NLS-2$
this.createTextField(// $NON-NLS-1$ //$NON-NLS-2$
"conditionalnodestyle.labelColor", // $NON-NLS-1$ //$NON-NLS-2$
"Label Color", style -> ((NodeStyle) style).getLabelColor(), (style, newLabelColor) -> ((NodeStyle) style).setLabelColor(newLabelColor), ViewPackage.Literals.NODE_STYLE__LABEL_COLOR), // $NON-NLS-1$ //$NON-NLS-2$
this.createTextField(// $NON-NLS-1$ //$NON-NLS-2$
"conditionalnodestyle.color", // $NON-NLS-1$ //$NON-NLS-2$
"Color", style -> ((NodeStyle) style).getColor(), (style, newColor) -> ((NodeStyle) style).setColor(newColor), ViewPackage.Literals.STYLE__COLOR), // $NON-NLS-1$ //$NON-NLS-2$
this.createTextField(// $NON-NLS-1$ //$NON-NLS-2$
"conditionalnodestyle.borderColor", // $NON-NLS-1$ //$NON-NLS-2$
"Border Color", style -> ((NodeStyle) style).getBorderColor(), (style, newColor) -> ((NodeStyle) style).setBorderColor(newColor), ViewPackage.Literals.BORDER_STYLE__BORDER_COLOR), // $NON-NLS-1$ //$NON-NLS-2$
this.createTextField(// $NON-NLS-1$ //$NON-NLS-2$
"conditionalnodestyle.borderRadius", // $NON-NLS-1$ //$NON-NLS-2$
"Border Radius", style -> String.valueOf(((NodeStyle) style).getBorderRadius()), (style, newBorderRadius) -> {
try {
((NodeStyle) style).setBorderRadius(Integer.parseInt(newBorderRadius));
} catch (NumberFormatException nfe) {
// Ignore.
}
}, ViewPackage.Literals.BORDER_STYLE__BORDER_RADIUS), // $NON-NLS-1$ //$NON-NLS-2$
this.createTextField(// $NON-NLS-1$ //$NON-NLS-2$
"conditionalnodestyle.borderSize", // $NON-NLS-1$ //$NON-NLS-2$
"Border Size", style -> String.valueOf(((NodeStyle) style).getBorderSize()), (style, newBorderSize) -> {
try {
((NodeStyle) style).setBorderSize(Integer.parseInt(newBorderSize));
} catch (NumberFormatException nfe) {
// Ignore.
}
}, ViewPackage.Literals.BORDER_STYLE__BORDER_SIZE), // $NON-NLS-1$
this.createBorderLineStyleSelectionField("conditionalnodestyle.borderstyle", ViewPackage.Literals.BORDER_STYLE__BORDER_LINE_STYLE), // $NON-NLS-1$ //$NON-NLS-2$
this.createCheckbox(// $NON-NLS-1$ //$NON-NLS-2$
"conditionalnodestyle.listMode", // $NON-NLS-1$ //$NON-NLS-2$
"List Mode", style -> ((NodeStyle) style).isListMode(), (style, newListMode) -> ((NodeStyle) style).setListMode(newListMode), ViewPackage.Literals.NODE_STYLE__LIST_MODE), // $NON-NLS-1$ //$NON-NLS-2$
this.createTextField(// $NON-NLS-1$ //$NON-NLS-2$
"conditionalnodestyle.fontSize", // $NON-NLS-1$ //$NON-NLS-2$
"Font Size", style -> String.valueOf(((LabelStyle) style).getFontSize()), (style, newColor) -> {
try {
((LabelStyle) style).setFontSize(Integer.parseInt(newColor));
} catch (NumberFormatException nfe) {
// Ignore.
}
}, ViewPackage.Literals.LABEL_STYLE__FONT_SIZE), // $NON-NLS-1$ //$NON-NLS-2$
this.createCheckbox(// $NON-NLS-1$ //$NON-NLS-2$
"conditionalnodestyle.italic", // $NON-NLS-1$ //$NON-NLS-2$
"Italic", style -> ((LabelStyle) style).isItalic(), (style, newItalic) -> ((LabelStyle) style).setItalic(newItalic), ViewPackage.Literals.LABEL_STYLE__ITALIC), // $NON-NLS-1$ //$NON-NLS-2$
this.createCheckbox(// $NON-NLS-1$ //$NON-NLS-2$
"conditionalnodestyle.bold", // $NON-NLS-1$ //$NON-NLS-2$
"Bold", style -> ((LabelStyle) style).isBold(), (style, newBold) -> ((LabelStyle) style).setBold(newBold), ViewPackage.Literals.LABEL_STYLE__BOLD), // $NON-NLS-1$ //$NON-NLS-2$
this.createCheckbox(// $NON-NLS-1$ //$NON-NLS-2$
"conditionalnodestyle.underline", // $NON-NLS-1$ //$NON-NLS-2$
"Underline", style -> ((LabelStyle) style).isUnderline(), (style, newUnderline) -> ((LabelStyle) style).setUnderline(newUnderline), ViewPackage.Literals.LABEL_STYLE__UNDERLINE), // $NON-NLS-1$ //$NON-NLS-2$
this.createCheckbox(// $NON-NLS-1$ //$NON-NLS-2$
"conditionalnodestyle.strikeThrough", // $NON-NLS-1$ //$NON-NLS-2$
"Strike Through", style -> ((LabelStyle) style).isStrikeThrough(), (style, newStrikeThrough) -> ((LabelStyle) style).setStrikeThrough(newStrikeThrough), ViewPackage.Literals.LABEL_STYLE__STRIKE_THROUGH), this.createShapeSelectionField(ViewPackage.Literals.NODE_STYLE__SHAPE));
GroupDescription groupDescription = this.createSimpleGroupDescription(controls);
Predicate<VariableManager> canCreatePagePredicate = variableManager -> variableManager.get(VariableManager.SELF, Object.class).filter(self -> self instanceof List<?>).map(self -> (List<?>) self).flatMap(self -> self.stream().findFirst()).filter(self -> self instanceof ConditionalNodeStyle).isPresent();
return FormDescription.newFormDescription(formDescriptionId).label(// $NON-NLS-1$
"Conditional Node Style").labelProvider(variableManager -> variableManager.get(VariableManager.SELF, ConditionalNodeStyle.class).map(ConditionalNodeStyle::getCondition).orElse(UNNAMED)).canCreatePredicate(variableManager -> true).idProvider(new GetOrCreateRandomIdProvider()).targetObjectIdProvider(this.getTargetObjectIdProvider()).pageDescriptions(List.of(this.createSimplePageDescription(groupDescription, canCreatePagePredicate))).groupDescriptions(List.of(groupDescription)).build();
// @formatter:on
}
use of org.eclipse.sirius.components.representations.GetOrCreateRandomIdProvider in project sirius-components by eclipse-sirius.
the class FormDescriptionAggregator method aggregate.
public Optional<FormDescription> aggregate(List<FormDescription> formDescriptions, List<Object> objects, IObjectService objectService) {
VariableManager pageVariableManager = new VariableManager();
pageVariableManager.put(VariableManager.SELF, objects);
// @formatter:off
List<PageDescription> pageDescriptions = formDescriptions.stream().flatMap(formDescription -> formDescription.getPageDescriptions().stream()).filter(pageDescription -> pageDescription.getCanCreatePredicate().test(pageVariableManager)).collect(Collectors.toList());
if (pageDescriptions.isEmpty()) {
return Optional.empty();
}
// @formatter:off
List<GroupDescription> groupDescriptions = pageDescriptions.stream().flatMap(pageDescription -> pageDescription.getGroupDescriptions().stream()).collect(Collectors.toUnmodifiableList());
Function<VariableManager, String> labelProvider = variableManager -> variableManager.get(VariableManager.SELF, Object.class).filter(self -> self instanceof List<?>).map(self -> (List<?>) self).flatMap(self -> self.stream().findFirst()).map(objectService::getFullLabel).orElse(// $NON-NLS-1$
"Properties");
// @formatter:on
// @formatter:off
Function<VariableManager, String> targetObjectIdProvider = variableManager -> variableManager.get(VariableManager.SELF, Object.class).filter(self -> self instanceof List<?>).map(self -> (List<?>) self).flatMap(self -> self.stream().findFirst()).map(objectService::getId).orElse(null);
return Optional.of(FormDescription.newFormDescription(UUID.randomUUID()).label(// $NON-NLS-1$
"Aggregated form description").idProvider(new GetOrCreateRandomIdProvider()).labelProvider(labelProvider).targetObjectIdProvider(targetObjectIdProvider).canCreatePredicate(variableManager -> false).pageDescriptions(pageDescriptions).groupDescriptions(groupDescriptions).build());
// @formatter:on
}
use of org.eclipse.sirius.components.representations.GetOrCreateRandomIdProvider in project sirius-components by eclipse-sirius.
the class ViewExtensionDescriptionConverter method convert.
@Override
public FormDescription convert(ViewExtensionDescription viewExtensionDescription) {
AQLInterpreter interpreter = this.interpreterFactory.create(viewExtensionDescription);
PageDescriptionConverter pageDescriptionConverter = new PageDescriptionConverter(interpreter, this.identifierProvider, this.semanticCandidatesProviderFactory);
GroupDescriptionConverter groupDescriptionConverter = new GroupDescriptionConverter(interpreter, this.objectService, this.identifierProvider, this.modelOperationHandlerSwitchProvider);
// @formatter:off
Map<org.eclipse.sirius.properties.GroupDescription, GroupDescription> siriusGroup2SiriusWebGroup = new HashMap<>();
List<GroupDescription> groupDescriptions = viewExtensionDescription.getCategories().stream().flatMap(category -> category.getPages().stream()).flatMap(page -> page.getGroups().stream()).map(groupDescription -> groupDescriptionConverter.convert(groupDescription, siriusGroup2SiriusWebGroup)).collect(Collectors.toList());
List<PageDescription> pageDescriptions = viewExtensionDescription.getCategories().stream().flatMap(category -> category.getPages().stream()).map(pageDescription -> pageDescriptionConverter.convert(pageDescription, siriusGroup2SiriusWebGroup)).collect(Collectors.toList());
Function<VariableManager, String> labelProvider = variableManager -> variableManager.get(VariableManager.SELF, Object.class).filter(self -> self instanceof List<?>).map(self -> (List<?>) self).flatMap(self -> self.stream().findFirst()).map(this.objectService::getFullLabel).orElse(// $NON-NLS-1$
"Properties");
Function<VariableManager, String> targetObjectIdProvider = variableManager -> variableManager.get(VariableManager.SELF, Object.class).filter(self -> self instanceof List<?>).map(self -> (List<?>) self).flatMap(self -> self.stream().findFirst()).map(this.objectService::getId).orElse(null);
return FormDescription.newFormDescription(UUID.fromString(this.identifierProvider.getIdentifier(viewExtensionDescription))).label(this.identifiedElementLabelProvider.getLabel(viewExtensionDescription)).idProvider(new GetOrCreateRandomIdProvider()).labelProvider(labelProvider).canCreatePredicate(variableManager -> false).targetObjectIdProvider(targetObjectIdProvider).pageDescriptions(pageDescriptions).groupDescriptions(groupDescriptions).build();
// @formatter:on
}
use of org.eclipse.sirius.components.representations.GetOrCreateRandomIdProvider in project sirius-web by eclipse-sirius.
the class RepresentationsDescriptionProvider method getRepresentationsDescription.
@Override
public FormDescription getRepresentationsDescription() {
List<GroupDescription> groupDescriptions = new ArrayList<>();
GroupDescription groupDescription = this.getGroupDescription();
groupDescriptions.add(groupDescription);
List<PageDescription> pageDescriptions = new ArrayList<>();
PageDescription firstPageDescription = this.getPageDescription(groupDescriptions);
pageDescriptions.add(firstPageDescription);
// @formatter:off
Function<VariableManager, String> labelProvider = variableManager -> variableManager.get(VariableManager.SELF, Object.class).filter(self -> self instanceof List<?>).map(self -> (List<?>) self).flatMap(self -> self.stream().findFirst()).map(this.objectService::getFullLabel).orElse(// $NON-NLS-1$
"Properties");
// @formatter:on
// @formatter:off
Function<VariableManager, String> targetObjectIdProvider = variableManager -> variableManager.get(VariableManager.SELF, Object.class).filter(self -> self instanceof List<?>).map(self -> (List<?>) self).flatMap(self -> self.stream().findFirst()).map(this.objectService::getId).orElse(null);
return FormDescription.newFormDescription(UUID.nameUUIDFromBytes(REPRESENTATIONS_DEFAULT_FORM_DESCRIPTION_ID.getBytes()).toString()).label(// $NON-NLS-1$
"Representations default form description").idProvider(new GetOrCreateRandomIdProvider()).labelProvider(labelProvider).targetObjectIdProvider(targetObjectIdProvider).canCreatePredicate(variableManager -> false).pageDescriptions(pageDescriptions).groupDescriptions(groupDescriptions).build();
// @formatter:on
}
Aggregations