use of io.jmix.ui.action.Action in project jmix by jmix-framework.
the class AbstractScreenFacet method subscribeOnAction.
protected void subscribeOnAction(Frame owner) {
Action action = ComponentsHelper.findAction(owner, actionId);
if (!(action instanceof BaseAction)) {
throw new GuiDevelopmentException(String.format("Unable to find Screen target action with id '%s'", actionId), owner.getId());
}
((BaseAction) action).addActionPerformedListener(e -> show());
}
use of io.jmix.ui.action.Action in project jmix by jmix-framework.
the class AbstractActionsHolderComponent method addAction.
@Override
public void addAction(Action action, int index) {
checkNotNullArgument(action, "action must be non null");
int oldIndex = findActionById(actionList, action.getId());
if (oldIndex >= 0) {
removeAction(actionList.get(oldIndex));
if (index > oldIndex) {
index--;
}
}
if (StringUtils.isNotEmpty(action.getCaption())) {
JmixButton contextMenuButton = createContextMenuButton();
initContextMenuButton(contextMenuButton, action);
int visibleActionsIndex = 0;
int i = 0;
while (i < index && i < actionList.size()) {
Action componentAction = actionList.get(i);
if (StringUtils.isNotEmpty(componentAction.getCaption()) && actionButtons.containsKey(componentAction)) {
visibleActionsIndex++;
}
i++;
}
contextMenuPopup.addComponent(contextMenuButton, visibleActionsIndex);
actionButtons.put(action, contextMenuButton);
}
actionList.add(index, action);
shortcutsDelegate.addAction(null, action);
attachAction(action);
actionsPermissions.apply(action);
}
use of io.jmix.ui.action.Action in project jmix by jmix-framework.
the class FilterDelegateImpl method fillTableActions.
/**
* Adds actions of 'Entities Set' functionality to Table component
*/
protected void fillTableActions() {
Table table;
if ((applyTo != null) && (Table.class.isAssignableFrom(applyTo.getClass()))) {
table = (Table) applyTo;
} else {
return;
}
ButtonsPanel buttons = table.getButtonsPanel();
if (buttons == null) {
// in lookup windows, there is no button panel
return;
}
io.jmix.ui.component.Button addToSetBtn = (Button) buttons.getComponent("addToSetBtn");
io.jmix.ui.component.Button addToCurSetBtn = (Button) buttons.getComponent("addToCurSetBtn");
io.jmix.ui.component.Button removeFromCurSetBtn = (Button) buttons.getComponent("removeFromCurSetBtn");
Action addToSet = table.getAction("filter.addToSet");
Action addToCurrSet = table.getAction("filter.addToCurSet");
Action removeFromCurrSet = table.getAction("filter.removeFromCurSet");
if (addToSet != null)
table.removeAction(addToSet);
if (addToSetBtn != null)
addToSetBtn.setVisible(false);
if (addToCurrSet != null) {
table.removeAction(addToCurrSet);
}
if (addToCurSetBtn != null) {
addToCurSetBtn.setVisible(false);
}
if (removeFromCurrSet != null) {
table.removeAction(removeFromCurrSet);
}
if (removeFromCurSetBtn != null) {
removeFromCurSetBtn.setVisible(false);
}
if ((filterEntity != null) && (BooleanUtils.isTrue(filterEntity.getIsSet()))) {
addToSet = table.getAction("addToSet");
if (addToSet != null) {
addToSet.setVisible(false);
}
addToCurrSet = new AddToCurrSetAction();
if (addToCurSetBtn == null) {
addToCurSetBtn = uiComponents.create(Button.class);
addToCurSetBtn.setId("addToCurSetBtn");
addToCurSetBtn.setCaption(getMainMessage("filter.addToCurSet"));
buttons.add(addToCurSetBtn);
} else {
addToCurSetBtn.setVisible(true);
}
if (StringUtils.isEmpty(addToCurSetBtn.getIcon())) {
addToCurSetBtn.setIconFromSet(JmixIcon.BARS);
}
addToCurSetBtn.setAction(addToCurrSet);
table.addAction(addToCurrSet);
removeFromCurrSet = new RemoveFromSetAction(table);
if (removeFromCurSetBtn == null) {
removeFromCurSetBtn = uiComponents.create(Button.class);
removeFromCurSetBtn.setId("removeFromCurSetBtn");
removeFromCurSetBtn.setCaption(getMainMessage("filter.removeFromCurSet"));
buttons.add(removeFromCurSetBtn);
} else {
removeFromCurSetBtn.setVisible(true);
}
if (StringUtils.isEmpty(removeFromCurSetBtn.getIcon())) {
removeFromCurSetBtn.setIconFromSet(JmixIcon.MINUS_CIRCLE);
}
removeFromCurSetBtn.setAction(removeFromCurrSet);
table.addAction(removeFromCurrSet);
} else if (filter.getFrame().getFrameOwner() instanceof LegacyFrame) {
addToSet = new AddToSetAction(table);
if (addToSetBtn == null) {
addToSetBtn = uiComponents.create(Button.class);
addToSetBtn.setId("addToSetBtn");
addToSetBtn.setCaption(getMainMessage("filter.addToSet"));
buttons.add(addToSetBtn);
} else {
addToSetBtn.setVisible(true);
}
if (StringUtils.isEmpty(addToSetBtn.getIcon())) {
addToSetBtn.setIconFromSet(JmixIcon.PLUS_CIRCLE);
}
addToSetBtn.setAction(addToSet);
table.addAction(addToSet);
}
}
use of io.jmix.ui.action.Action in project jmix by jmix-framework.
the class PaletteFragment method createActions.
private void createActions(Tree<DashboardLayout> widgetTree, DashboardLayout layout) {
widgetTree.removeAllActions();
List<Action> actions = actionsProvider.getLayoutActions(layout);
for (Action action : actions) {
widgetTree.addAction(action);
}
}
use of io.jmix.ui.action.Action in project jmix by jmix-framework.
the class ListPrintFormAction method actionPerform.
@Override
public void actionPerform(Component component) {
DialogAction cancelAction = new DialogAction(DialogAction.Type.CANCEL);
ScreenContext screenContext = ComponentsHelper.getScreenContext(target);
Preconditions.checkState(screenContext != null, "Component is not attached to window");
Dialogs dialogs = screenContext.getDialogs();
Set selected = target.getSelected();
if (CollectionUtils.isNotEmpty(selected)) {
if (selected.size() > 1) {
Action printSelectedAction = new AbstractAction("actions.printSelected", Status.PRIMARY) {
@Override
public void actionPerform(Component component) {
printSelected(selected);
}
};
printSelectedAction.setIcon(JmixIcon.BARS.source());
printSelectedAction.setCaption(messages.getMessage(getClass(), "actions.printSelected"));
Action printAllAction = new AbstractAction("actions.printAll") {
@Override
public void actionPerform(Component component) {
printAll();
}
};
printAllAction.setIcon(JmixIcon.TABLE.source());
printAllAction.setCaption(messages.getMessage(getClass(), "actions.printAll"));
dialogs.createOptionDialog().withCaption(messages.getMessage(getClass(), "notifications.confirmPrintSelectedHeader")).withMessage(messages.getMessage(getClass(), "notifications.confirmPrintSelected")).withActions(printAllAction, printSelectedAction, cancelAction).show();
} else {
printSelected(selected);
}
} else {
if (isDataAvailable()) {
Action yesAction = new DialogAction(DialogAction.Type.OK) {
@Override
public void actionPerform(Component component) {
printAll();
}
};
cancelAction.setPrimary(true);
dialogs.createOptionDialog().withCaption(messages.getMessage(getClass(), "notifications.confirmPrintAllheader")).withMessage(messages.getMessage(getClass(), "notifications.confirmPrintAll")).withActions(yesAction, cancelAction).show();
} else {
Notifications notifications = screenContext.getNotifications();
notifications.create().withCaption(messages.getMessage(getClass(), "notifications.noSelectedEntity")).withType(Notifications.NotificationType.HUMANIZED).show();
}
}
}
Aggregations