use of io.jmix.ui.action.Action in project jmix by jmix-framework.
the class AttributeComponentProvider method addRow.
protected void addRow(Object value, ComponentContainer parent, boolean isReadOnly) {
BoxLayout row = uiComponents.create(HBoxLayout.class);
row.setSpacing(true);
row.setWidthFull();
TextField valueField = uiComponents.create(TextField.class);
valueField.setValue(value);
valueField.setEditable(!isReadOnly);
row.add(valueField);
row.expand(valueField);
Button btnRemove = uiComponents.create(Button.class);
btnRemove.setIconFromSet(JmixIcon.TIMES);
btnRemove.setDescription(messages.getMessage(getClass(), "editAttribute.array.btnRemove"));
Action removeRowAction = new BaseAction("removeRow").withCaption("").withHandler(actionPerformedEvent -> parent.remove(row));
removeRowAction.setEnabled(!isReadOnly);
btnRemove.setAction(removeRowAction);
row.add(btnRemove);
parent.add(row);
}
use of io.jmix.ui.action.Action in project jmix by jmix-framework.
the class ActionsImpl method createAction.
protected Action createAction(Class<? extends Action> actionClass, String id) {
Constructor<? extends Action> constructor;
try {
constructor = actionClass.getConstructor(String.class);
} catch (NoSuchMethodException e) {
throw new RuntimeException(String.format("Unable to get constructor for '%s' action", actionClass), e);
}
try {
Action instance = constructor.newInstance(id);
autowireContext(instance);
return instance;
} catch (InstantiationException | IllegalAccessException | InvocationTargetException e) {
throw new RuntimeException(String.format("Error creating the '%s' action instance", actionClass), e);
}
}
use of io.jmix.ui.action.Action in project jmix by jmix-framework.
the class ActionsImpl method createAction.
protected Action createAction(Class<? extends Action> actionClass) {
Constructor<? extends Action> constructor;
try {
constructor = actionClass.getConstructor();
} catch (NoSuchMethodException e) {
throw new RuntimeException(String.format("Unable to get constructor for '%s' action", actionClass), e);
}
try {
Action instance = constructor.newInstance();
autowireContext(instance);
return instance;
} catch (InstantiationException | IllegalAccessException | InvocationTargetException e) {
throw new RuntimeException(String.format("Error creating the '%s' action instance", actionClass), e);
}
}
use of io.jmix.ui.action.Action in project jmix by jmix-framework.
the class RoleAssignmentScreen method initScreenActions.
protected void initScreenActions() {
Window window = getWindow();
Messages messages = getApplicationContext().getBean(Messages.class);
Icons icons = getApplicationContext().getBean(Icons.class);
String commitShortcut = getApplicationContext().getBean(UiScreenProperties.class).getCommitShortcut();
Action commitAndCloseAction = new BaseAction(Window.COMMIT_ACTION_ID).withCaption(messages.getMessage("actions.Ok")).withIcon(icons.get(JmixIcon.EDITOR_OK)).withPrimary(true).withShortcut(commitShortcut).withHandler(actionPerformedEvent -> {
// noinspection ConstantConditions
getScreenData().getDataContext().commit();
close(new StandardCloseAction(Window.COMMIT_ACTION_ID));
});
window.addAction(commitAndCloseAction);
Action closeAction = new BaseAction(Window.CLOSE_ACTION_ID).withIcon(icons.get(JmixIcon.EDITOR_CANCEL)).withCaption(messages.getMessage("actions.Cancel")).withHandler(actionPerformedEvent -> {
if (dataContext.hasChanges()) {
screenValidation.showUnsavedChangesDialog(this, WINDOW_CLOSE_ACTION).onDiscard(() -> close(WINDOW_CLOSE_ACTION));
} else {
close(WINDOW_CLOSE_ACTION);
}
});
window.addAction(closeAction);
}
use of io.jmix.ui.action.Action in project jmix by jmix-framework.
the class ComponentLoaderHelper method loadLegacyListAction.
public static Optional<Action> loadLegacyListAction(ComponentLoader.Context context, ActionsHolder actionsHolder, Element element, @Nullable String caption, @Nullable String description, @Nullable String iconPath, @Nullable String shortcut) {
Boolean isInvokeMethod = Boolean.parseBoolean(element.attributeValue("invoke"));
if (isLegacyFrame(context) && !isInvokeMethod) {
String id = element.attributeValue("id");
// Try to create a standard list action
for (ListActionType type : ListActionType.values()) {
if (type.getId().equals(id)) {
Action instance = type.createAction((ListComponent) actionsHolder);
String enable = element.attributeValue("enable");
if (StringUtils.isNotEmpty(enable)) {
instance.setEnabled(Boolean.parseBoolean(enable));
}
String visible = element.attributeValue("visible");
if (StringUtils.isNotEmpty(visible)) {
instance.setVisible(Boolean.parseBoolean(visible));
}
if (StringUtils.isNotBlank(caption)) {
instance.setCaption(caption);
}
if (StringUtils.isNotBlank(description)) {
instance.setDescription(description);
}
if (StringUtils.isNotBlank(iconPath)) {
instance.setIcon(iconPath);
}
if (StringUtils.isNotBlank(shortcut)) {
instance.setShortcut(shortcut);
}
loadActionOpenType(instance, element, context);
loadActionConstraint(instance, element);
return Optional.of(instance);
}
}
}
return Optional.empty();
}
Aggregations