Search in sources :

Example 21 with Action

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());
}
Also used : Action(io.jmix.ui.action.Action) BaseAction(io.jmix.ui.action.BaseAction) GuiDevelopmentException(io.jmix.ui.GuiDevelopmentException) BaseAction(io.jmix.ui.action.BaseAction)

Example 22 with Action

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);
}
Also used : Action(io.jmix.ui.action.Action) JmixButton(io.jmix.ui.widget.JmixButton)

Example 23 with 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);
    }
}
Also used : io.jmix.ui.component(io.jmix.ui.component) Action(io.jmix.ui.action.Action) BaseAction(io.jmix.ui.action.BaseAction) AbstractAction(io.jmix.ui.action.AbstractAction) StandardCloseAction(io.jmix.ui.screen.StandardCloseAction) DialogAction(io.jmix.ui.action.DialogAction) ItemTrackingAction(com.haulmont.cuba.gui.components.actions.ItemTrackingAction) Table(io.jmix.ui.component.Table) PopupButton(io.jmix.ui.component.PopupButton) LegacyFrame(com.haulmont.cuba.gui.screen.compatibility.LegacyFrame) ButtonsPanel(io.jmix.ui.component.ButtonsPanel)

Example 24 with Action

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);
    }
}
Also used : Action(io.jmix.ui.action.Action)

Example 25 with 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();
        }
    }
}
Also used : Action(io.jmix.ui.action.Action) DialogAction(io.jmix.ui.action.DialogAction) AbstractPrintFormAction(io.jmix.reportsui.action.AbstractPrintFormAction) AbstractAction(io.jmix.ui.action.AbstractAction) StudioAction(io.jmix.ui.meta.StudioAction) ScreenContext(io.jmix.ui.screen.ScreenContext) HashSet(java.util.HashSet) Set(java.util.Set) Dialogs(io.jmix.ui.Dialogs) DialogAction(io.jmix.ui.action.DialogAction) ListComponent(io.jmix.ui.component.ListComponent) Component(io.jmix.ui.component.Component) AbstractAction(io.jmix.ui.action.AbstractAction) Notifications(io.jmix.ui.Notifications)

Aggregations

Action (io.jmix.ui.action.Action)82 BaseAction (io.jmix.ui.action.BaseAction)47 DialogAction (io.jmix.ui.action.DialogAction)11 ItemTrackingAction (io.jmix.ui.action.ItemTrackingAction)11 Component (io.jmix.ui.component.Component)9 Autowired (org.springframework.beans.factory.annotation.Autowired)9 GuiDevelopmentException (io.jmix.ui.GuiDevelopmentException)8 Icons (io.jmix.ui.icon.Icons)8 UiScreenProperties (io.jmix.ui.UiScreenProperties)7 io.jmix.ui.component (io.jmix.ui.component)7 io.jmix.ui.screen (io.jmix.ui.screen)7 Nullable (javax.annotation.Nullable)7 Dialogs (io.jmix.ui.Dialogs)6 Notifications (io.jmix.ui.Notifications)6 AbstractAction (io.jmix.ui.action.AbstractAction)6 Window (io.jmix.ui.component.Window)6 JmixButton (io.jmix.ui.widget.JmixButton)6 JmixIcon (io.jmix.ui.icon.JmixIcon)5 Named (javax.inject.Named)5 OpenType (com.haulmont.cuba.gui.WindowManager.OpenType)4